alternative N-Tier compatibili con DDD

0

Nel libro di Eric Evans su DDD nella sezione Moduli dice

[tiered design] is attempting to address two legitimate issues. One is the logical division of concerns: One object has responsibility for database access, another for business logic, etc. This makes it easier to understand the functioning of each tier (on a technical level) and makes it easier to switch out layers. The trouble is that the cost to application development is not recognized. This is not a book on framework design, so I won’t go into alternative solutions to that problem, but they do exist. And even if there were no options, it would be better to trade this off for a more cohesive domain layer.

The other motivation for these packaging schemes is the distribution of tiers. This could be a strong argument if the code actually gets deployed on different servers. Usually it does not. The flexibility is sought just in case it is needed. On a project that hopes to get leverage from MODEL-DRIVEN DESIGN, this sacrifice is too great.

Puoi fornire un esempio di soluzione alternativa alle applicazioni a livelli che è compatibile con DDD?

    
posta P.Brian.Mackey 19.02.2015 - 14:34
fonte

1 risposta

1

Livelli e DDD sono preoccupazioni ortogonali.

I tuoi livelli non dovrebbero preoccuparsi del design dei tuoi oggetti. Ciò implicherebbe un accoppiamento stretto, un attributo indesiderato. Nella maggior parte dei sistemi a più livelli, esiste una sorta di oggetto di trasferimento dati o flusso di dati che sta comunicando le informazioni tra i livelli. XML e JSON sono comuni. Ogni livello ha i propri oggetti con cui si occupa, e non è particolarmente preoccupato per la progettazione di altri oggetti del livello.

Se ne dubiti, allora considera in che modo DDD è amichevole con il tuo server di posta elettronica. Mentre il tuo server di posta elettronica ha un concetto di cosa sia un "contatto", è altamente probabile che non sia esattamente lo stesso oggetto che nel tuo sistema CRM. Esistono meccanismi software che possono "sincronizzare" tra server di posta elettronica e sistemi CRM utilizzando il modello Adapter, ma non è vero DDD blu in alcun modo.

    
risposta data 19.02.2015 - 17:20
fonte

Leggi altre domande sui tag