Ho deciso di usare DDD in uno dei miei progetti per animali domestici per scoprire di cosa si tratta! Lasciatemi iniziare dicendo che questo (DDD) è il modo in cui il software dovrebbe essere scritto, ho visto alcuni strani schemi e convenzioni ma DDD è davvero il modo più naturale di scrivere codice.
Punti interessanti che ho notato iniziato con DDD:
- Ora posso sognare il codice senza ricordare i vincoli che ci impongono i database I dati persistenti ora sono in secondo piano quando si sviluppa un sistema complesso (questo potrebbe tornare a mordermi)
- Mi sento molto più vicino al business e ai problemi di business a portata di mano
- Le discussioni tra te e il cliente ora vengono eseguite sul loro terreno neutro
- Le discussioni tra gli sviluppatori sono in linea con il codice
- Ho imparato ad amare il refactoring (Faresti meglio a fare pace con quello adesso)
Domanda 1: un'entità è autorizzata a effettuare chiamate al repository? Ad esempio, se è necessario verificare che un determinato campo sia univoco nel sistema, si dovrebbe scrivere un servizio di dominio o l'entità può effettuare una chiamata al repository?
Domanda 2: Qual è la migliore pratica per convalidare una nuova entità? Dovresti avere una funzione Validate () o la validazione può essere fatta nel costruttore?
I tuoi pensieri su questo?