/ / CQRS e modello di dominio: progettazione basata su dominio, modello di repository, cqrs

CQRS e modello di dominio: progettazione basata su dominio, modello di repository, cqrs

Devo implementare un progetto con CQRS, tuttavia sono in dubbio su quali entità ottengano un corrispondente comando e classi di query.

Se ho le classi A, B e C, visto che A è la mia radice aggregata e le altre sono entità figlio nel mio aggregato, quali classi dovrebbero avere classi di comando e di query?

Voglio dire, dovrei avere una QueryA, QueryB e QueryC, o dovrei avere solo QueryA, che porterà i dati del bambino usando il caricamento pigro, per esempio?

Per i repository, in base alla mia comprensione del modello di dominio, sto considerando solo un repositoryA (per la mia radice aggregata).

risposte:

7 per risposta № 1

Le query non sono per aggregato, sono su base per visualizzazione. Ad esempio, si supponga di avere un account cliente e si desidera visualizzare

  1. un elenco di account
  2. dettagli dell'account con informazioni confidenziali (ad esempio dettagli della carta di credito)
  3. dettagli dell'account senza informazioni riservate

Si tratterebbe di tre query, una per ogni visualizzazione. E di solito senza cose dolorose come il carico pigro. O hai bisogno di qualche informazione per una visione specifica o non lo sai.

I comandi non sono anche per aggregato. Avresti un comando per ogni comportamento. Come OpenAccount, CloseAccount, MergeAccounts, ecc.