Dividere un contesto limitato - amministrazione ed esecuzione

1

TLDR: non sono sicuro di avere il mio Contesto Limitato a posto.

Situazione

Ho un modello di dominio in un contesto limitato:

L'intero modello si trova nello stesso contesto limitato. Il contesto limitato ha due responsabilità:

  • gestione di prodotti / regole / parametri
  • analisi / esecuzione delle regole dei prodotti

Gli invarianti di business relativi all'amministrazione di prodotti, regole e parametri sono contenuti negli stessi aggregati. Il modello prodotto / regola / parametro esistente è molto adatto a questo.

problema

I problemi sorgono durante l'esecuzione delle regole. Per eseguire una (serie di) regole, ho bisogno di giocherellare un sacco, interrogare e filtrare su più raccolte:

  • Un prodotto specifico
  • Tutte le regole appartenenti a quel prodotto
  • Tutti i parametri che appartengono a tali regole.
  • A volte ho anche bisogno di filtrare su quelle raccolte per combinazioni molto specifiche e questo diventa sempre più ingombrante.

Così ho creato una nuova classe ExecutionProduct come segnaposto per tutti i dati filtrati necessari a ExecutionRule + ha iniziato ad aggiungere la logica di filtraggio a ExecutionProduct . Non si adatta perfettamente al modello di esecuzione + ci sono molti dati estranei all'interno degli aggregati, ma posso gestirli.

Domanda

ExecutionProduct mi ha fatto riflettere sull'opportunità di spostare l'analisi / esecuzione delle responsabilità in un Contesto Limitato autonomo, poiché ciò mi consentirebbe di trasformare i dati esistenti in un formato più adatto per l'esecuzione. Tieni presente che quando si eseguono le regole, non è necessario mantenere nulla: consiste nell'eseguire tutte le regole e fare complicati filtri, confronti e altre logiche di business.

    
posta robotron 05.10.2018 - 11:47
fonte

0 risposte

Leggi altre domande sui tag