but I was wondering about the (conceptual) advantages of separating result from status (even though it seems to me that one might argue that error and cancelled are also simply different states than the completed state).
C'è un grande vantaggio nel dettagliare i progressi e nell'identificare i punti failiure (entro limiti ragionevoli) come nel tuo caso.
Penso che la confusione derivi dai termini "stato" e "stato". Dobbiamo qualificare questi termini. Ad esempio, "Task Status", anche questo non è molto preciso, quindi potremmo voler usare "Task Execution Status", tuttavia questo è sbagliato perché hai già un passo d'esecuzione. Potremmo usare il nome "Task Processing Status" ei valori di: "initiated - validating - executing - completed" sono perfettamente logici. Infatti potremmo aggiungere "Cancellato" alla lista. Tuttavia, "Errore" non risponde a una domanda del tipo: Che cos'è lo Stato di elaborazione delle attività molto bene. Sembra che "Errore" sia uno stato secondario di Completato . Quindi cosa facciamo? Potremmo rinominare Completato per essere Completato OK e quindi aggiungere Completato con errore alla lista. Quindi l'elenco finale dei valori Stato elaborazione attività sono:
-
Iniziato,
-
Convalidato,
-
Esecuzione,
-
annullato,
-
Completato OK,
-
Completato con errore
Modifica: ora l'elenco sopra richiede ancora un po 'di lavoro. I primi 4 elementi non contengono la parola "OK". Quindi, se è meglio essere lì per abbinare lo stato "Completato OK". L'altra cosa è che i primi 4 elementi non hanno un "errore" - Che cosa significa? Cosa succede quando "Executing" termina in modo anomalo? Richiede un nuovo stato di "Executed with Error"? A questo punto, potrebbero essere necessari più input e analisi.