La CQRS e l'architettura esagonale sono incompatibili?

-2

Sto iniziando un progetto e mi chiedevo se posso usare CQRS e l'architettura esagonale nello stesso progetto, o in effetti sono incompatibili.

Ho letto di CQRS e alcune persone sono d'accordo sul fatto che non si tratta di un'architettura e più di uno schema.

Che ne pensi?

    
posta jpadilladev 01.12.2017 - 09:37
fonte

2 risposte

7

Questo è come chiedere se puoi usare gli utensili per mangiare il gelato. (Sì, puoi. Raccomando un cucchiaio.)

CQRS ti chiede di non mescolare la complessità necessaria per eseguire query con la complessità necessaria per l'aggiornamento.

Hexagonal Architecture ti chiede di non mescolare la complessità delle porte di input e output con la tua logica di applicazione centrale.

Quindisì,puoifareentrambelecose.Mafarneunononsignificaaverfattol'altro.

Selohaifattopotrebbeessereschematizzatoinquestomodo:

Questomostradovevannolecose.Immaginagliadattatoritragliesagonicheaiutanoaisolarelalogicacentraledell'applicazionedallemodifichediDBedell'interfacciautente.

Moltidiquestiprincipidifantasiasonoinrealtàsoloperisolarelecose.Nonèchenonpuoicrearequalcosachefunzioniseliignori.Maseguirlisignificachel'impattodiuncambiamentodeirequisitièisolato.Nonsemplificalascritturadelcodicetantoquantorendepiùsemplicelamanutenzionedelcodice.

Hexagonal, onion e clean architecture sembrano tutti nomi diversi per la stessa cosa. Gli autori amano rubare un'idea e dargli un nuovo nome.

    
risposta data 01.12.2017 - 19:09
fonte
1

If I can use CQRS and Hexagonal architecture in the same project

Sì, certo.

I read about CQRS and some people agree that it is not an architecture, and more like a pattern.

Anche vero.

Il risultato è ancora fondamentalmente esagonale; ad esempio, se si sta implementando un servizio stateless, le richieste di comando e query passeranno comunque attraverso una porta primaria verso il modello di dominio, che recupera i dati dal componente di persistenza esterno utilizzando una porta secondaria. L'idea chiave è che le letture raccoglieranno dati da una porta secondaria diversa da quella utilizzata per le scritture.

Se non eri utilizzando CQRS, le tue letture e le tue scritture probabilmente condivideranno la porta secondaria.

    
risposta data 01.12.2017 - 15:13
fonte

Leggi altre domande sui tag