Domanda

Contesto:   Quindi, sto tentando di costruire un modello di dominio ridicolmente complesso. Parlando con gli utenti, ci sono diversi modi in cui verrà utilizzato il sistema (ad esempio: un modo è dal punto di vista dell'impiegato; un altro modo è dal punto di vista del datore di lavoro). In realtà, sono più applicazioni che riutilizzano il dominio principale.

Domanda:   È sbagliato creare il dominio da più prospettive? Ad esempio, costruire il dominio mentre l'attività è in corso significherebbe creare tutti i tipi di classi di relazione che contengono informazioni extra sull'entità e così via ... Tuttavia, quando si esegue da una prospettiva particolare, l'immagine è molto più chiara perché la maggior parte di le classi di relazione possono essere inserite nell'entità padre.

Idee? Confutazioni? Sono completamente fuori base?

È stato utile?

Soluzione

No, questo è assolutamente appropriato. Evan's chiama queste "prospettive" contrapposti nel suo libro.

Invece di avere un modello di dominio davvero complesso, prova a crearne uno semplice che si rivolga al dominio in un modo specifico molto bene. I contesti limitati possono essere collegati insieme per formare una rete di modelli di dominio diretto più piccoli, più semplici.

Altri suggerimenti

Non credo che dovresti cercare di predefinire il "dominio principale" in anticipo. Lascia che emerga durante il processo di sviluppo. Inoltre, tutto ciò che non è comune alle 2 (o più) prospettive non dovrebbe essere nel 'core'.

Ad esempio, costruisci una parte del sistema dal punto di vista del datore di lavoro. Ciò potrebbe richiedere di creare entità come "Progetto", "Attività" e "Cliente". Quindi costruire una porzione dal punto di vista del datore di lavoro. Ciò potrebbe richiedere di creare nuove entità e di riutilizzare "Progetto" e "Attività". In quel momento sposterei "Progetto" e "Task" nella "libreria principale" condivisa dal resto del sistema.

A volte troverai entità comuni, ma correlate in diversi modi. In tal caso, la relazione dovrebbe essere inserita dal contesto anziché essere integrata con le entità stesse.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top