Mi sono imbattuto nel discorso di Greg Young 7 Ragioni per cui i progetti DDD falliscono quando menziona qualcosa che chiama DDD-Lite alle 7:20.
Riassumendo, in sostanza dice che alcuni usano DDD come linguaggi di pattern (entità, repository, oggetti valore, servizi, ecc.) Senza fare nient'altro correlato a DDD. Postula il 60% o più dei modelli di dominio in .Net sono DDD-Lite. Pensa che DDD-Lite stia fondamentalmente costruendo un linguaggio attorno all'iniezione di dipendenze, qualcosa che non devi davvero fare. Dice che fai interamente DDD o fai qualcosa di più semplice. Altrimenti sostiene che una persona sta mettendo tutto questo lavoro nella costruzione di buone astrazioni, ma senza alcun reale beneficio.
Devo ammettere che non so quanto di DDD vorrei e non ho ancora provato a usarlo. Non ho nemmeno letto il libro di Eric Evan. Sono molto più interessato a Dependency Injection e molti, molti libri e blog su questo argomento usano termini e concetti di riferimento tratti dal libro DDD di Eric Evans. Qui è dove sono stato esposto ai concetti di DDD. I libri che ho letto che fanno questo includono:
- Iniezione delle dipendenze in .NET
- Microsoft .Net: Architecting Applications for the Enterprise
- Sviluppo di applicazioni Brownfield in .NET
Se si vuole fare l'iniezione di dipendenza, quali sono le alternative più semplici rispetto a fare "DDD-Lite?" Mi sembra che costruire buone astrazioni sia abbastanza utile indipendentemente dal fatto che si stiano usando i concetti di DDD in modo "DDD-Lite". (vedi i post sul blog di Mark Seemann: le interfacce non sono astrazioni e verso una migliore astrazione ). Faccio fatica a credere che chiunque stia facendo Dependency Injection stia anche facendo (o deve fare) un DDD completo. In qualche modo ho frainteso l'argomento di Greg Young su DDD-Lite?