Come definire correttamente i limiti dei contesti limitati

2

Sto considerando come impostare i confini precisi dei contesti limitati. Considerando che un contesto limitato è uno spazio di soluzione, a volte è molto difficile impostare esattamente lo spazio della soluzione.

Ecco un esempio. Ho i seguenti contesti limitati

  • Ordine
  • Messaggi
  • Gestione dei contenuti
  • Magazzino ecc.

Quindi in una situazione di vita reale questa è una possibile situazione

  • L'ordine deve inviare una notifica
  • L'ordinazione ottiene una bozza del messaggio dalla gestione dei contenuti
  • L'ordine formatta un messaggio e lo inoltra alla messaggistica
  • La messaggistica invia una notifica e fa tutto il lavoro rilevante per quel BC (invia un messaggio, lo archivia, lo registra ecc.)

Sembra un progetto valido, ma ho dei dubbi a riguardo. Ad esempio, se Messaging dovesse essere parte di uno "spazio soluzione" per l'ordine e anche forse "spazio soluzione" del Magazzino (non come BC naturalmente, proprio come il codice). In tal caso, la progettazione di Messaging potrebbe cambiare per ogni "spazio soluzione" in base alle proprie esigenze (se presenti).

Tirando fuori da più BC ho voluto che Messaging fosse una parte dello "spazio di soluzione" di Messaging (per risolvere i requisiti del processo di messaggistica), quindi un BC diverso può usarlo (livello anti-corruzione) senza duplicare la sua logica in più BC.

Entrambi gli scenari sono validi, il primo scenario tende a far dipendere altri BC da Messaging BC senza codice duplicato, mentre altri scenari offrono piena autonomia a ciascun BC, nessun messaggio di messaggistica BC, codice "duplicato" e probabilmente più elevato di risorse in quel BC .

Quindi potrebbe essere un buon modo per definire i confini di un problema / spazio soluzione? Dovrebbe essere basato su alcune linee guida DDD, limiti delle risorse hardware o qualcos'altro?

    
posta Dario Granich 13.08.2016 - 13:11
fonte

1 risposta

2

Il modo più semplice per determinare un limite BC è osservare quali termini nel tuo BC attuale hanno significati multipli nel mondo reale.

Ad esempio, un Ordine per una persona che rispetta lo spazio pubblicitario ha un elenco di elementi che deve avere in magazzino per l'invio. Per un autista, un ordine potrebbe essere nient'altro che un camion e una destinazione.

La messaggistica suona come un aspetto tecnico della soluzione e per quel che riguarda si adatta al proprio BC.

    
risposta data 13.08.2016 - 21:02
fonte