È buona prassi mettere la logica del servizio in base alla pista di controllo?

3

Stiamo sviluppando un'applicazione e stiamo creando audit trail per ogni singolo sistema e un'azione dell'utente. Abbiamo alcune logiche di business nei servizi e per le quali stiamo guardando indietro ai percorsi di controllo per scoprire quale utente ha fatto quale azione.

È buona prassi mettere la logica del servizio in base alla pista di controllo?

    
posta Durgaprasad Budhwani 13.04.2018 - 11:13
fonte

2 risposte

2

No.

Il problema è che la pista di controllo non dovrebbe mai cambiare una volta scritta. Quindi diciamo che ho qualche logica aziendale

"Mostra il pulsante Acquista se il cliente non ha acquistato in precedenza"

E quando il cliente acquista, aggiungiamo un record di controllo.

Implementiamo la logica aziendale controllando che i clienti registrino i dati e visualizzino il pulsante di conseguenza.

Ora, diciamo che un ordine va male in qualche modo. La pista di controllo ha un buy scritto, ma qualcosa è andato storto da qualche parte e il cliente sta dicendo che non ha comprato l'oggetto.

Forse il tuo sospetto è che in effetti hanno comprato l'oggetto, ma in questa fase devi solo accettare la possibile perdita e ottenere un cliente felice. Sei felice che la tua logica aziendale sia corretta E felice che la pista di controllo sia corretta E che questo caso è così raro che non è necessario un nuovo processo.

La tentazione consiste nel fare una correzione dei dati per il cliente. Cancellare manualmente il loro record di acquisto in modo che il pulsante riappaia, e in circostanze normali si potrebbe fare proprio questo.

Ma! poiché la tua logica è guidata dalla pista di controllo, ciò significa che devi modificare quella pista di controllo. Che davvero, davvero non vuoi fare e forse che non è legalmente possibile fare.

    
risposta data 13.04.2018 - 13:44
fonte
6

Dipende (ma suppongo che per la maggior parte delle situazioni del mondo reale la risposta sia no , rischi di incorrere in problemi).

Una pista di controllo generica può raccogliere dati che, a seconda dei dettagli, potrebbero essere influenzati dalle leggi sulla sicurezza dei dati e sulla privacy della giurisdizione in cui verrà utilizzata la tua applicazione. Se tali leggi ti costringono a mantenere i dati accessibili solo per i privilegiati personali, o se tali leggi ti costringono a rendere anonimi tali dati, o se ti costringono a eliminarli dopo un certo periodo potresti incorrere in problemi se è anche utilizzato per il controllo di altre logiche di business.

Un'altra cosa da considerare è se i dati di audit sono archiviati in un modulo che può essere utilizzato direttamente per la tua attività o se è archiviato come qualcosa di simile a un file di registro debolmente strutturato. Quest'ultimo è probabile quando la pista di controllo originariamente non doveva essere utilizzata per la logica aziendale. In questo caso, dovrai analizzare il file di registro e ricostruire cose come il nome utente da esso. Un simile approccio può facilmente portare a una soluzione fragile e complicata.

Quindi, se nessuno di questi motivi non si applica al tuo sistema e sei sicuro che non si applicheranno entro un periodo di tempo ragionevole, allora puoi seguire quella strada.

In caso contrario, è probabilmente più semplice e più gestibile creare una traccia "specifica per l'azienda" che memorizzi esattamente le informazioni necessarie per controllare la logica aziendale, esattamente nella forma in cui la utilizzerai, con i diritti di accesso e tempo di vita richiesto dal tuo sistema.

    
risposta data 13.04.2018 - 11:47
fonte

Leggi altre domande sui tag