Quali sono i vantaggi di separare "risultato" da "stato"


11

Supponiamo che tu abbia alcuni processi automatizzati che generalmente attraversano i seguenti stati; pianificato - avviato - convalidato - in esecuzione - completato

Inoltre, questi processi possono terminare prematuramente a causa di un errore o della cancellazione esplicita dell'utente.

Il mio primo impulso è semplicemente aggiungere l' errore e cancellato all'elenco dei possibili valori di stato, ma mi chiedevo quali fossero i vantaggi (concettuali) di separare il risultato dallo stato (anche se mi sembra che si possa sostenere che l'errore e l'annullamento siano anche stati semplicemente diversi dallo stato completato ).

Risposte:


12

Lo stato che assegni ai tuoi processi dovrebbe riflettere ciò che il tuo programma (o gli utenti, se stai solo visualizzando gli stati) stanno per fare con queste informazioni. Quindi hai il requisito di valutare / mostrare lo stato dei tuoi processi finché sono in esecuzione e non mostrano errori? Quindi separare il risultato dallo stato . Se hai solo bisogno dello stato al termine di un processo, non separare.

Non dovresti modellare nulla solo per motivi di modellazione. Controlla meglio le tue esigenze. E se non sei sicuro di cosa potresti aver bisogno in seguito, scegli la soluzione più piccola e semplice per i requisiti che conosci di sicuro. Se stai solo "indovinando", nel 90% dei casi indovinerai male, quindi dovrai comunque cambiare il tuo modello in seguito.


1

ma mi chiedevo quali fossero i vantaggi (concettuali) di separare il risultato dallo status (anche se mi sembra che si possa sostenere che l'errore e la cancellazione siano anche stati semplicemente diversi dallo stato completato).

C'è un grande vantaggio nel descrivere i progressi e identificare i punti di errore (entro limiti ragionevoli) come nel tuo caso. Penso che la confusione derivi dai termini "stato" e "stato" - Dobbiamo qualificare questi termini. Ad esempio, "Stato attività", anche se questo non è molto preciso, quindi potremmo voler usare "Stato di esecuzione dell'attività", tuttavia questo è sbagliato perché hai già una fase di esecuzione. Possiamo usare il nome "Stato elaborazione attività" e i valori di: "avviato - convalida - esecuzione - completato" hanno perfettamente senso. In effetti, potremmo aggiungere "Annullato" all'elenco. Tuttavia, "Errore" non risponde a una domanda del tipo: qual è lo stato di elaborazione delle attività molto bene. Sembra che "Errore" sia uno stato secondario di Completato . Quindi cosa facciamo? Potremmo rinominare Completato comeCompletato OK e quindi potremmo aggiungere Completato con errore all'elenco. Quindi l'elenco finale dei valori dello stato di elaborazione delle 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 "Completed OK". L'altra cosa è che i primi 4 elementi non hanno un "con 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 ulteriori input e analisi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.