Was sind die Vorteile der Trennung von "Ergebnis" und "Status"?

11

Angenommen, Sie haben einige automatisierte Prozesse, die im Allgemeinen die folgenden Zustände durchlaufen. geplant - initiiert - validieren - ausführen - abgeschlossen

Darüber hinaus können diese Prozesse aufgrund eines Fehlers oder einer expliziten Benutzerkündigung vorzeitig beendet werden.

Mein erster Impuls ist, einfach Fehler hinzuzufügen und zur Liste der möglichen Statuswerte abzubrechen , aber ich habe mich über die (konzeptionellen) Vorteile der Trennung von Ergebnis und Status gewundert (obwohl es mir so scheint, als könnte man argumentieren, dass Fehler und Abbruch auch sind einfach andere Zustände als der abgeschlossene Zustand).

Kennzeichen
quelle

Antworten:

12

Der Status, den Sie Ihren Prozessen zuweisen, sollte widerspiegeln, was Ihr Programm (oder die Benutzer, wenn Sie nur Status visualisieren) mit diesen Informationen tun wird. Müssen Sie also den Status Ihrer Prozesse bewerten / anzeigen, solange sie ausgeführt werden und keinen Fehler anzeigen? Dann trennen Sie das Ergebnis vom Status . Wenn Sie den Status nur benötigen, wenn ein Prozess beendet wurde, trennen Sie ihn nicht.

Sie sollten nichts nur zum Zwecke der Modellierung modellieren. Überprüfen Sie besser Ihre Anforderungen. Und wenn Sie sich nicht sicher sind, was Sie später benötigen könnten, wählen Sie die kleinste und einfachste Lösung für die Anforderungen, die Sie sicher kennen. Wenn Sie nur "raten", werden Sie in 90% aller Fälle falsch raten, sodass Sie Ihr Modell später ohnehin ändern müssen.

Doc Brown
quelle
1

Aber ich habe mich über die (konzeptionellen) Vorteile der Trennung von Ergebnis und Status gewundert (obwohl es mir so scheint, als ob man argumentieren könnte, dass Fehler und Aufhebung auch einfach andere Zustände sind als der abgeschlossene Zustand).

Es ist von großem Vorteil, den Fortschritt detailliert darzustellen und Fehlerpunkte (innerhalb angemessener Grenzen) wie in Ihrem Fall zu identifizieren. Ich denke, die Verwirrung rührt von den Begriffen "Status" und "Staat" her - wir müssen diese Begriffe qualifizieren. Zum Beispiel "Aufgabenstatus", auch wenn dies nicht sehr genau ist. Daher möchten wir möglicherweise "Aufgabenausführungsstatus" verwenden. Dies ist jedoch falsch, da Sie bereits einen Ausführungsschritt haben. Wir können den Namen "Task Processing Status" verwenden und die Werte "initiiert - validieren - ausführen - abgeschlossen" sind absolut sinnvoll. In der Tat könnten wir der Liste "Abgebrochen" hinzufügen. 'Fehler' beantwortet jedoch keine Frage wie: Wie ist der Status der Aufgabenverarbeitung sehr gut ? Es sieht so aus, als ob 'Fehler' ein Unterstatus von Abgeschlossen ist . Also, was machen wir? Wir konnten Umbenennungs abgeschlossen seinAbgeschlossen OK und dann könnten wir Abgeschlossen mit Fehler zur Liste hinzufügen . Die endgültige Liste der Werte für den Taskverarbeitungsstatus lautet also:

  • Eingeweiht,

  • Bestätigt,

  • Ausführen,

  • Abgesagt,

  • OK abgeschlossen,

  • Mit Fehler abgeschlossen

Bearbeiten: Jetzt erfordert die obige Liste noch einige Arbeit. Die ersten 4 Elemente enthalten nicht das Wort "OK". Also, wenn es besser da ist, um mit dem Status "Abgeschlossen OK" übereinzustimmen. Die andere Sache ist, dass die ersten 4 Elemente kein "mit Fehler" haben - Was bedeutet das? Was passiert, wenn "Ausführen" abnormal endet? Erfordert dies den neuen Status "Ausgeführt mit Fehler"? Zu diesem Zeitpunkt sind möglicherweise mehr Eingaben und Analysen erforderlich.

Keine Chance
quelle