Domain-driven design: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Atarubot (discussione | contributi)
Corretti parametri ref duplicati
Costruire le basi del DDD: Chiarificato e corretto testo riguardante le Entity e i Value Object basandosi sul corrispondente testo inglese
Riga 37:
== Costruire le basi del DDD ==
Nel libro ''Domain-Driven Design''<ref>{{Cita libro |titolo=Domain-Driven Design: Tackling Complexity in the Heart of Software |cognome=Evans |nome=Eric |anno=2004 |editore=Addison-Wesley |isbn=978-0-321-12521-7|accesso=12 agosto 2012 |url=http://www.domaindrivendesign.org/books/evans_2003}}.</ref>, vengono introdotti una serie di concetti chiave e pratiche, come il significato ''ubiquitous language'' cioè un linguaggio unificato creato dagli esperti del dominio che viene usato per descrivere i requisiti di sistema, che inoltre si adatta all'utilizzo da parte di vari attori quali utenti, produttori e sviluppatori. Il libro è fortemente orientato a descrivere lo strato di dominio in un sistema orientato agli oggetti con un'architettura a multistrati. Nel DDD, esistono artefatti per esprimere, creare, e recuperare modelli di dominio:
;Entity: Un oggetto che non è definito dai suoi attributi, ma piuttosto dalla sua identità. Per esempio, la maggior parte delle compagnie aeree distinguono in modo univoco ogni sedile su ogni volo. Ogni sedile è un'entità in questo contesto. Tuttavia, Southwest Airlines, EasyJet e Ryanair non distinguono tra tutti i sedili;: Tuttitutti i sedili sono ugualitra loro indistinguibili. In questo contesto, il sedile è in realtà un value object.
;Value Object: Un oggetto che ha una serie di attributi ma non ha identità concettuale. DevonoI value object devono essere trattati come immutabileoggetti immutabili. Per esempio quando le persone si scambiano banconote da un dollaro, cheessi insono generesolo noninteressati distinguonoal travalore unnominale unicodella prototipo;banconota, sononon soloalla preoccupatisingola peridentità ildelle valorebanconote nominale della banconotascambiate. In questo contesto, le banconote da un dollaro sono rappresentate da value object. Tuttavia, la Federal Reserve potrebbe essere preoccupatainteressata peralla ognisingola pagamentobanconota unico;identificata Indal questosuo numero seriale: in tale contesto, ogni prototipobanconota potrebbeè esserepiù propriamente rappresentata da una un'entità.''
;Aggregate: Una collezione di oggetti che sono legati insieme da un'entità padre, altrimenti nota come una radice di aggregato. La radice di aggregazione garantisce la consistenza dei cambiamenti compiuti all'interno dell'aggregato proibendo ad oggetti esterni di detenere i riferimenti ai suoi membri interni. Per esempio, quando si guida una macchina, non ci si deve preoccupare di muovere le ruote in avanti, tenere il motore in combustione attraverso l'accensione e del combustibile, ecc .; si sta semplicemente guidando l'auto. In questo contesto, la macchina è un aggregato di diversi altri oggetti e serve come radice aggregata per tutti gli altri sistemi.
;Domain Event: Un oggetto di dominio che definisce un evento (qualcosa che accade). Un evento di dominio è un evento di assoluta importanza per gli esperti di dominio.