Cancellazione modulo. Dove dovrebbe verificarsi un rollback dei dati?

2

Hai una forma in cui è iniettato un oggetto. L'utente interagisce con il modulo e aggiorna l'oggetto iniettato tramite l'interfaccia utente. Se l'utente allora "cancella" il modulo, di chi è la responsabilità di annullare tali modifiche?

Il modulo deve aver creato un clone dell'oggetto passato e restituirlo al client? O il client dovrebbe controllare l'azione "Annulla" ed eseguire l'azione di annullamento?

Esiste una "best practice" per questo?

    
posta Darren Young 06.02.2014 - 15:17
fonte

2 risposte

5

Idealmente, l'interfaccia utente non dovrebbe conoscere direttamente i tuoi oggetti di business. Dovrebbe sapere cosa deve visualizzare e dove inviare eventuali sottomissioni. Il destinatario dell'invio dovrebbe sapere come elaborare i dati inviati rispetto ai tuoi oggetti di dominio.

Quindi non ci dovrebbe essere nulla da ripristinare, solo i dati del modulo da scartare.

A volte è necessario memorizzare i dati dei moduli da qualche parte, nel caso in cui la presentazione sia messa in attesa o l'applicazione si arresti in modo anomalo, o qualsiasi altra cosa. In questi casi, suggerirei comunque di archiviare i dati del modulo separatamente dai dati del dominio, rendendoli altrettanto facili da scartare.

Nella rara occasione in cui potrebbe essere necessario applicare le modifiche ai dati e testarlo prima di eseguirne il rollback. Se non è assolutamente possibile utilizzare un'area di gestione temporanea, utilizzare i record di cancellazione e cronologia, ma sicuramente non esporli all'interfaccia utente. Consenti solo di passare da una revisione all'altra.

    
risposta data 06.02.2014 - 15:35
fonte
0

Se seguo correttamente, hai fatto clic sul pulsante Salva, ma poi vuoi la possibilità di scartare queste modifiche quasi immediatamente.

C'è un'ulteriore complicazione che potrebbe essere che prima di premere il pulsante Annulla, l'utente potrebbe fare un'altra modifica e premere Salva.

Quindi potrebbe essere il caso di memorizzare una cronologia dell'oggetto nel database, tracciare un "ultimo ID di versione" e usarlo su Annulla postback per ripristinare l'ultima versione.

    
risposta data 06.02.2014 - 15:41
fonte

Leggi altre domande sui tag