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 - convalida - in esecuzione - completato

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

Il mio primo impulso è semplicemente aggiungere errore e cancellato nell'elenco di possibili valori di stato, ma mi chiedevo i vantaggi (concettuali) della separazione di risultato da stato (anche se mi sembra che si possa sostenere che errori e cancellazioni siano semplicemente stati diversi rispetto allo stato completato ).

    
posta mark 21.02.2012 - 08:31
fonte

2 risposte

12

Lo stato che assegni ai tuoi processi dovrebbe riflettere ciò che il tuo programma (o gli utenti, se stai visualizzando gli stati) avranno a che fare con queste informazioni. Quindi hai il requisito di valutare / mostrare lo stato dei tuoi processi fintanto che sono in esecuzione e non mostrano errori? Quindi separa risultato da stato . Se hai solo bisogno dello stato quando un processo è terminato, quindi non separare.

Non si dovrebbe modellare nulla solo per motivi di modellazione. Meglio controllare 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 con certezza. Se stai solo "indovinando", nel 90% di tutti i casi indovinerai male, quindi dovrai comunque modificare il modello in un secondo momento.

    
risposta data 21.02.2012 - 09:15
fonte
1

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.

    
risposta data 21.02.2012 - 11:34
fonte

Leggi altre domande sui tag