In che modo il concetto di radice di aggregazione e il modello di deposito risolvono il DEAN durante le operazioni di database?

4

Se ho dieci classi, e hanno tutte bisogno di operazioni CRUD, in che modo una radice aggregata e il pattern di repository mi risolvono dovendo scrivere un sacco di codice boilerplate (il DRY)?

Prendi l'esempio di una scuola e io ho uno studente, un insegnante, un soggetto, un programma, una stanza, ..., ecc.

Se non avessi fatto nulla, avrei avuto un servizio o una classe da qualche parte che aveva un singolo Crea per ogni oggetto e lo hanno per ogni classe. Sono cinque o più ripetizioni, la digitazione, quasi della stessa azione. Le colonne saranno diverse ma non molto altro.

La mia comprensione dell'Agregate Root (AR) consiste nel prendere quel concetto AR e raggruppare i "comportamenti" in base a un caso d'uso. Quindi, finisco con meno, credo, modelli o servizi per fare CRUD.

Ho letto molte domande su SO, SE e Blog. Troppi per fare riferimento qui. Ho anche letto molto sul pattern del repository. Molti degli esempi di modelli di repository finiscono con un repository per ciascun modello. Quella è la stessa barca in cui ero prima (e c'erano domande SO che lo confermavano).

Quindi sono confuso su ciò che sto realizzando qui. Sembra che sto semplicemente riducendo il numero di comandi che devono essere formattati e che non esiste un modo "magico" per creare un generico fare tutto CRUD e tutte le altre specialità del database per l'oggetto e il comportamento X.

È corretto?

    
posta johnny 01.02.2017 - 19:34
fonte

1 risposta

7

Non lo fanno.

Questi concetti riducono o centralizzano il numero di chiamate necessarie al codice aziendale per caricare qualsiasi oggetto dati chiamando direttamente il codice CRUD, ma in realtà il codice CRUD per caricare o aggiornare o salvare gli oggetti deve essere da qualche parte , poiché è usato, almeno, dall'interno del repository.

Riducete la necessità di scrivere tali istruzioni usando tecniche di generazione del codice, un ORM o una sorta di Micro ORM che genera il codice CRUD in anticipo o just-in-time. Ma questo è per lo più ortogonale al modello di deposito o al concetto di radice aggregata.

    
risposta data 01.02.2017 - 21:12
fonte

Leggi altre domande sui tag