Una cosa su cui faccio sempre fatica, quando si progetta un software, è trovare un buon modo per tenere traccia dello stato di un oggetto.
Ad esempio, diciamo che volevo tenere traccia di una macchina in costruzione. Potrebbe avere lo stato di "Lavoro di verniciatura completato". Ma da una prospettiva diversa, questo stato potrebbe anche essere considerato "Pronto per l'assemblaggio". O dal punto di vista delle vendite, sarebbe "In produzione".
Quindi ora il mio codice oggetto per la macchina conterrebbe tre proprietà:
public string StatusFromPaintShopPerspective { get; set; }
public string StatusFromAssemblyPerspective { get; set; }
public string StatusFromSalesPerspecitve { get; set; }
Ora ovviamente potrei avere lo stato come ID (e in questo caso probabilmente lo farei), ma cosa succede se qualcosa va storto e lo stato cambia in "Richiede attenzione manuale" (o l'ID per quello stato). In questo caso, lo stato non mi dirà quanto è stato nel processo, solo che richiede l'attenzione manuale.
Quindi dove sto andando con questo? Ho sempre difficoltà a progettare buoni sistemi per tracciare uno stato. E trovo difficile credere che io sia l'unico a lottare con questo. Ma non riesco a trovare nessun buon articolo o letteratura sull'argomento.
Qualcuno ha qualche suggerimento su come implementare il tracciamento dei processi?