¿Dónde encuentro algunos buenos ejemplos para DDD? [cerrado]

390

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
jlembke
fuente
42
IHMO tales debates ayudarán mucho. A veces más que una simple pregunta. Por ejemplo, podríamos cambiar esto en una pregunta: "¿Dónde encuentro algunos buenos ejemplos de DDD?" y funciona con el formato de preguntas y respuestas.
Gizzmo
1
El ejemplo del "proyecto de gestión ágil" del libro de Vaughn Vernon me pareció muy instructivo. ilustra la implementación práctica de los bloques de construcción que enumera, además de tratar con diferentes contextos delimitados, puede encontrar el código aquí: github.com/VaughnVernon/IDDD_Samples
Mehdi.
1
Recomendaría este ejemplo: github.com/vkhorikov/DddInAction
Vladimir
1
Puedes echar un vistazo aquí: dzone.com/storage/assets/…
Chaklader Asfak Arefe
Tengo uno aquí: github.com/appie2go/steal-this-code
Clark Kent

Respuestas:

199

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.

Michael Hart
fuente
2
Como mencionó @Mehdi en el comentario original de la pregunta, debe agregar el maravilloso ejemplo de Vaughn Vernon. Es la mejor implementación del patrón DDD hasta ahora que he visto: github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
Sé que esto es viejo, pero el ejemplo de dddpsparece 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.
David Anderson
Ahora debe agregar la excelente muestra de Vaugnh Vernon, autor de Implementing Domain Driven Design (IDDD): github.com/VaughnVernon/IDDD_Samples
Sylvain Lecoy
23

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.

Todd Smith
fuente
los enlaces no funcionan
sidgate el
11

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 .

user996985
fuente
El código fuente ya no está disponible :(
Dherik
7

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

Thurein
fuente
1
No puedo rechazar esto, pero vaya al blog de Ayende para ver por qué piensa que este no es un buen ejemplo. ayende.com/blog/19457/…
Chris
1
el enlace que proporciona no funciona, mensaje de error: 'Proyecto' microsoftnlayerapp 'no se encontró'
Omar AMEZOUG