Sto applicando Clean Architecture + DDD (forse) nel mio progetto (web Application + REST API).
La cosa buona che ho imparato da Clean Architecture è l'utilizzo di "Interactors" per mostrare casi d'uso nel mio codice, che naturalmente si adattano al pattern Command. In modo che io usi i Command Patterns nel mio progetto.
Normalmente, ho chiamato il mio comando come "AddNewRequestCommand".
Ma sto pensando di cambiarlo in "AgentAddNewRequestCommand", che naturalmente si adatta alla mia user story e il comando stesso mostra il contesto completo del comando perché ogni caso d'uso ha bisogno di un attore.
Supponiamo di avere questa User Story:
- In qualità di agente, desidero aggiungere una nuova richiesta di consegna, in modo da poter consegnare le mie merci.
- Come agente voglio elencare la mia richiesta creata, in modo da poter gestire le mie richieste create.
- In qualità di amministratore, desidero elencare tutte le richieste nel sistema, in modo da semplificare l'assistenza clienti
Risultato:
- AgentAddNewRequestCommand
- AgentListCreatedRequestQuery
- AdministratorListAllCreatedRequestQuery
(Agente, Amministratore ... sono attori commerciali, non si tratta di ruoli / permessi)
Buono:
- I comandi / Query mostreranno tutte le storie utente dell'applicazione
- Comando / Query show actor & contesto del caso d'uso. In modo che possa ottenere un quadro più ampio del caso d'uso. Non devo fare una domanda del tipo: "Chi eseguirà questo comando"
- Converti facilmente le storie degli utenti in Command / Query. In modo che, sviluppatore e amp; BA / PM può dire la stessa lingua.
Cattivo:
- Provocherà un po 'di confusione tra attori e ruoli: che ne dici se sono un amministratore e un ampli; Voglio aggiungere una nuova richiesta.
Che ne pensi?