Registrazione degli eventi a scopo di segnalazione

7

Esistono modelli di progettazione o best practice relativi agli eventi di registrazione da utilizzare nei sistemi di reporting e BI.

Ad esempio, in un sistema che gestisce gli ordini da un sito Web, sarebbe utile se un addetto all'assistenza clienti potesse digitare un numero di ordine e verificare che l'ordine è stato effettuato in un determinato giorno, spedito in un determinato giorno e consegnato su un altro.

Posso vedere 2 modi per aggirare questo. Ho un oggetto ordine che ha i campi:

OrderDate
DespatchDate
DeliveryDate

e popolali se sono andati diversamente altrimenti saranno nulli

o

registra alcuni tipi di eventi come messaggi come:

Order Number - "12312312" - Ordered on '2014/01/01'
Order Number - "12312312" - Despatched on '2014/01/01'

e aggiungi memorizza gli eventi in un database.

Ci sono delle linee guida per questo? Ad esempio, come funziona la cronologia degli oggetti di lavoro in TFS?

    
posta Nick Williams 02.05.2014 - 16:03
fonte

2 risposte

8

Robert ha fatto buoni punti nella sua risposta.

Inoltre, potresti voler controllare il Log di controllo come descritto da Martin Fowler qui (e forse, più in generale , Modelli temporali ). Se si volesse fare qualcosa di più del semplice monitoraggio dell'attività aziendale / reporting aziendale di questi eventi, si potrebbe voler esaminare Event Sourcing. Fowler fornisce un'introduzione qui .

Puoi utilizzare questi termini per cercare altre opinioni sul Web.

    
risposta data 03.05.2014 - 15:03
fonte
6

Se si tratta di un report aziendale correlato che verrà generato e consegnato a qualcuno, quindi generare record di eventi in un database e quindi creare un report da tali record. Dare ai registri un reale significato semantico, piuttosto che semplicemente allegare un messaggio. In altre parole, rendili cittadini di prima classe.

La registrazione ha uno scopo diverso. La registrazione è intesa come uno strumento di monitoraggio dei sistemi, non un meccanismo di logica aziendale. Se il report è parte integrante dell'esecuzione dell'attività, rendilo parte integrante dell'applicazione.

    
risposta data 02.05.2014 - 18:43
fonte

Leggi altre domande sui tag