Estoy aprendiendo sobre el diseño impulsado por dominio, sin embargo, hay algunos problemas prácticos que me confunden y creo que ver algunas buenas muestras podría aclararse.
¿Alguien sabe de algunos ejemplos de código de trabajo que hagan un buen trabajo de modelar conceptos básicos de DDD?
Particularmente interesado en
- Un modelo ilustrativo de dominio
- Repositorios
- Uso de servicios de dominio / aplicación
- Objetos de valor
- Raíces Agregadas
domain-driven-design
jlembke
fuente
fuente
Respuestas:
La dificultad con las muestras DDD es que a menudo son muy específicas del dominio y la implementación técnica del sistema resultante no siempre muestra las decisiones de diseño y las transiciones que se hicieron al modelar el dominio, que es realmente el núcleo de DDD. DDD es mucho más sobre el proceso que el código. (Como algunos dicen, ¡la mejor muestra de DDD es el libro mismo!)
Dicho esto, una aplicación de muestra bien comentada debería al menos revelar algunas de estas decisiones y darle alguna dirección en términos de hacer coincidir su modelo de dominio con los patrones técnicos utilizados para implementarlo.
No ha especificado qué idioma está utilizando, pero le daré algunos en diferentes idiomas:
DDDSample : una muestra de Java que refleja los ejemplos de los que Eric Evans habla en su libro . Esto está bien comentado y muestra varios métodos diferentes para resolver diversos problemas con contextos limitados separados (es decir, la capa de presentación). Se está trabajando activamente, así que verifíquelo regularmente para obtener actualizaciones.
dddps : la aplicación C # de muestra de Tim McCarthy para su libro, Diseño impulsado por dominio .NET con C #
Arquitectura S # arp : un ejemplo pragmático de C #, no tan "puro" como un enfoque DDD tal vez debido a la falta de un problema de dominio real, pero sigue siendo un enfoque limpio y agradable.
Con todas estas aplicaciones de muestra, probablemente sea mejor consultar las últimas versiones troncales de SVN / lo que sea para tener una idea real de los patrones de pensamiento y tecnología, ya que deben actualizarse regularmente.
fuente
dddps
parece ser completamente anémico y contrario a la POO en realidad. Ninguno de los objetos de dominio tiene ningún comportamiento, y las clases de capa de servicio son básicamente una delegación 1: 1 a los repositorios. No estoy seguro de si esto debería considerarse un "buen" ejemplo de DDD. Todavía estoy aprendiendo, pero las muestras en S # arp Architecture parecen ser un mejor ejemplo para aquellos que aprenden DDD, ya que abarca tanto el estado como el comportamiento, que es un buen diseño de OOP.No son proyectos de origen por decir, pero me topé con Parleys.com que tiene algunos buenos videos que cubren DDD bastante bien (requiere flash):
Encontré esto mucho más útil que los ejemplos DDD casi inexistentes que están disponibles actualmente.
fuente
El ejemplo de DDD de .NET del libro de diseño controlado por dominio de Eric Evans se puede encontrar aquí: http://dddsamplenet.codeplex.com
Salud,
Jakub G
fuente
Echa un vistazo a Project Silk . No solo demuestra DDD sino también otros patrones de vanguardia. Este es un excelente recurso para cualquier desarrollador web. Se puede encontrar una descripción completa del proyecto en MSDN .
fuente
Este es un buen ejemplo basado en el diseño impulsado por dominio y explica por qué es importante tener una capa de dominio separada.
Microsoft españa - DDD N Layer Architecture
fuente
ddd-cqrs-sample también es un buen recurso. Escrito con Java, Spring y JPA.
Enlace actualizado: https://github.com/BottegaIT/ddd-leaven-v2
fuente
Code Camp Server , el código de muestra de Jeffrey Palermo para el libro ASP.NET MVC en acción . Si bien el libro se centra en la capa de presentación, la aplicación se modela utilizando DDD.
fuente