Dovrei usare layer 'domain' separati?

4

Ho letto molto sul livello del dominio e DDD. Comunque sono ancora confuso a riguardo. Per me sembrano essere un nome di fantasia per le classi di business, ma più modellato rispetto al dominio dell'applicazione, ma poi la maggior parte dei programmatori con cui ho lavorato crea oggetti / entità aziendali e cerco di modellarlo il più vicino possibile agli oggetti applicativi reali.

Quindi ecco la domanda. Nell'applicazione Asp.net Web API il cui obiettivo principale è quello di ottenere grandi quantità di dati (principalmente richieste GET) da diverse tabelle sulla base di determinati input e di una logica in esecuzione come risultato, c'è davvero bisogno di un livello di dominio e di business oggetti?

** Un'altra cosa che trovo problematico quando leggo di DDD è che sia DAL che BLL collegano a Domain Layer che possono introdurre problemi di dipendenza durante l'aggiornamento di alcune parti dell'applicazione in futuro.

    
posta Emma 04.02.2015 - 18:45
fonte

1 risposta

4

Penso che gli oggetti business / entità che stai descrivendo non siano in realtà oggetti di dominio in senso DDD, se stai applicando DDD la tua logica di business sarebbe contenuta negli Oggetti Dominio stessi; le entità che stai descrivendo (con logica aziendale in un livello separato) sembrano essere Anemiche .

Se vuoi sapere se usare DDD dovresti stabilire se il dominio su cui stai lavorando è sufficientemente complesso da coinvolgere gli esperti di dominio come " [f]", in particolare il DDD è il principio che dovremmo concentrarsi sulle profonde questioni del dominio in cui i nostri utenti sono coinvolti, che la parte migliore delle nostre menti dovrebbe essere dedicata alla comprensione di quel dominio e collaborare con esperti in quel settore per combatterlo in una forma concettuale che possiamo usare per costruire software potente e flessibile . " Eric Evans

Il fatto che tu stia essenzialmente visualizzando i dati da diverse tabelle sulla base di determinati input e qualche logica mi porterebbe a credere che il tuo dominio non sia abbastanza complesso da giustificare l'applicazione del DDD.

Per affrontare la tua ultima preoccupazione, un'architettura DDD comune non avrebbe il collegamento DAL e BLL al Domain Layer, il DAL sarebbe stato astratto dietro a repository che esporrà e manterrà gli oggetti Dominio; la logica aziendale sarebbe contenuta negli oggetti Dominio stessi e il "BLL" sarebbe in realtà un livello di servizio o applicazione che utilizza il repository per accedere agli oggetti del dominio, è " un sottile strato che coordina l'applicazione attività. non contiene la logica aziendale . Non è così mantenere lo stato degli oggetti business, ma può contenere lo stato di avanzamento di un'attività dell'applicazione ". (dal libro progettazione guidata dal dominio rapidamente pagina 30 )

    
risposta data 05.02.2015 - 07:29
fonte

Leggi altre domande sui tag