Ho un requisito che è:
When one employee starts working on a project and when he finishes working on it he must inform the system so that it can generate a report afterwards of how much hours a certain project required.
Il requisito in sé è semplice, voglio solo vedere se sto pensando bene. La mia idea iniziale era un approccio basato su eventi: quando il dipendente inizia a lavorare su di esso viene sollevato un evento che lo informa, e quando il dipendente finisce di lavorare viene sollevato un evento che lo informa.
Alla fine della giornata, per contare le ore necessarie per un determinato progetto, abbiamo solo bisogno di recuperare gli eventi rilevanti e calcolare gli intervalli di tempo e riassumerli.
Tuttavia ci sono ancora alcune estremità libere. Ad esempio, trovare un modo per collegare due eventi di questo tipo in modo che sappiamo che si fa riferimento al lavoro iniziato e l'altro si riferisce alla fine di quel lavoro iniziato. La mia idea era di fare in modo che un evento avesse un riferimento all'altro, ma non so se questo è solitamente fatto.
A proposito, l'altro approccio che pensavo sembrava gonfiare la classe dei dipendenti. In pratica, era necessario che la classe dei dipendenti avesse un riferimento al progetto al quale il dipendente sta lavorando e una proprietà che si riferisse all'orario di inizio del lavoro. Al termine, viene registrata una sola voce per il periodo di tempo nel progetto.
Il secondo approccio è molto più semplice, ma sembra aggiungere responsabilità alla classe dei dipendenti, ma non sono sicuro.
L'approccio all'evento è davvero l'approccio più naturale e più semplice qui, o l'approccio di un evento è l'iperspolatio e solo rendere la classe dei dipendenti responsabile della gestione di questo approccio più semplice?