Pregunta

contexto:   Por lo tanto, estoy intentando construir un modelo de dominio ridículamente complejo. Hablando con los usuarios, hay varias formas en que se usará el sistema (por ejemplo: una forma es desde la perspectiva del empleado, otra forma es desde la perspectiva del empleador). En realidad, son múltiples aplicaciones que reutilizan el dominio central.

Pregunta:   ¿Está mal crear el dominio desde múltiples perspectivas? Por ejemplo, construir el dominio a medida que se ejecuta el negocio significaría crear todo tipo de clases de relaciones que llevan información adicional sobre la entidad y así sucesivamente ... Sin embargo, cuando se ejecuta desde una perspectiva particular, la imagen es mucho más clara porque la mayoría de las clases de relación se pueden incluir en su entidad principal.

Ideas? Refutaciones? ¿Estoy completamente fuera de la base?

¿Fue útil?

Solución

No, esto es absolutamente apropiado. Evan llama a estos contextos "perspectivas" acotados en su libro.

En lugar de tener un modelo de dominio realmente complejo, intente construir uno simple que aborde el dominio de una manera específica realmente bien. Los Contextos delimitados se pueden vincular entre sí para formar una red de modelos de dominio directo más pequeños y más simples.

Otros consejos

No creo que debas intentar y predefinir el 'dominio central' desde el principio. Déjalo emerger sobre el proceso de desarrollo. Además, cualquier cosa que no sea común a las 2 (o más) perspectivas no debe estar en el "núcleo".

Por ejemplo, cree una parte del sistema desde la perspectiva del empleado. Esto podría pedirle que cree entidades como 'Proyecto', 'Tarea' y 'Cliente'. Luego construye una porción desde la perspectiva del empleador. Esto podría pedirle que cree nuevas entidades y que vuelva a utilizar 'Proyecto' y 'Tarea'. Fue entonces cuando moví 'Proyecto' y 'Tarea' a la 'biblioteca central' compartida por el resto del sistema.

Algunas veces encontrarás entidades comunes, pero relacionadas de diferentes maneras. En ese caso, la relación debe ser inyectada por el contexto en lugar de estar integrada con las entidades mismas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top