Buenas muestras de Diseño impulsadas por el Dominio [cerrado]


Estoy aprendiendo sobre el Diseño impulsado por el Dominio y disfrutando cada minuto de él. Sin embargo, hay algunos problemas prácticos que me confunden que creo que ver algunas buenas muestras podría aclarar.

Entonces, estando en paz con esos problemas, ¿alguien sabe de algunas muestras de código que funcionan bien y que hacen un buen trabajo modelando conceptos básicos de DDD?

Particularmente interesado en

  • Un Modelo ilustrativo de Dominio
  • Repositorios
  • Uso del Dominio / Aplicación Servicios
  • Objetos de valor
  • Raíces agregadas

Sé que probablemente estoy pidiendo demasiado, pero cualquier cosa cercana ayudará.

Author: Ram, 2009-02-12

8 answers

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 en el modelado del dominio, que es realmente el núcleo de DDD. DDD es mucho más sobre el proceso que sobre el código. (como algunos dicen, la mejor muestra de DDD es el libro en sí!)

Dicho esto, una aplicación de muestra bien comentada debería al menos revelar algunas de estas decisiones y darle algunas 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 varios idiomas diferentes:

DDDSample - una muestra de Java que refleja los ejemplos de los que Eric Evans habla en su libro. Esto está bien comentado y muestra una serie de métodos diferentes para resolver varios problemas con contextos delimitados separados (es decir, la capa de presentación). Es estar trabajando activamente, así que compruébelo regularmente para obtener actualizaciones.

Dddps -La aplicación de ejemplo de C# de Tim McCarthy para su libro,. NET Domain-Driven Design with C#

S # arp Architecture - un ejemplo pragmático de C#, no como un enfoque DDD "puro" quizás debido a su falta de un problema de dominio real, pero aún así un enfoque limpio y agradable.

Con todas estas aplicaciones de muestra, probablemente sea mejor revisar las últimas versiones troncales de SVN / whatever para realmente tener una idea de la los patrones de pensamiento y tecnología, ya que deben actualizarse regularmente.

 168
Author: Michael Hart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-13 01:24:36

No son proyectos de código fuente, 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 casi inexistentes ejemplos de DDD que están disponibles actualmente.

 24
Author: Todd Smith,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-16 08:00:25

. NET DDD Muestra del Libro de Diseño Basado en Dominios de Eric Evans se puede encontrar aquí: http://dddsamplenet.codeplex.com

Salud,

Jakub G

 11
Author: Gutek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-02 16:27:25

Echa un vistazo a Project Silk. No solo demuestra DDD sino otros patrones de vanguardia. Este es un excelente recurso para cualquier desarrollador web. Una descripción completa del proyecto se puede encontrar en MSDN.

 10
Author: user996985,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-15 15:29:17

Este es un buen ejemplo basado en el diseño impulsado por el dominio y explica por qué es importante tener una capa de dominio separada.
Microsoft españa - DDD N Layer Architecture

 6
Author: Thurein,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-21 12:45:17

Ddd-cqrs-sample también es un buen recurso. Escrito con Java, Spring y JPA.

 5
Author: Rafał Wicha,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-12-03 22:57:03

Servidor de Campamento de Código, El código de muestra de Jeffrey Palermo para el libro ASP.NET MVC en acción . Mientras que el libro se centra en la capa de presentación, la aplicación se modela utilizando DDD.

 4
Author: Peter Tate,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-11-05 19:00:40

Tiempo y Dinero, aunque deja mucho que desear.

 0
Author: moffdub,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-02-21 12:03:11