Diseño guiado por el dominio

De Wikipedia, la enciclopedia libre
Ir a la navegación Ir a la búsqueda

El diseño guiado por el dominio, en inglés: domain-driven design (DDD), es un enfoque para el desarrollo de software con necesidades complejas mediante una profunda conexión entre la implementación y los conceptos del modelo y núcleo del negocio.

El DDD no es una tecnología ni una metodología, este provee una estructura de prácticas y terminologías para tomar decisiones de diseño que enfoquen y aceleren el manejo de dominios complejos en los proyectos de software.

El término fue acuñado por Eric Evans en su libro "Domain-Driven Design - Tackling Complexity in the Heart of Software".[1]

Ventajas de usar domain-driven design:

·        Comunicación efectiva entre expertos del dominio y expertos técnicos a través de Ubiquitous Language.

·        Foco en el desarrollo de un área dividida del dominio (subdominio) a través de Bounded Context’s.

·        El software es más cercano al dominio, y por lo tanto es más cercano al cliente.

·        Código bien organizado, permitiendo el testing de las distintas partes del dominio de manera aisladas.

·        Lógica de negocio reside en un solo lugar, y dividida por contextos.

·        Mantenibilidad a largo plazo.[2]

Premisas[editar]

Las premisas del DDD son las siguientes:

  • Poner el foco primario del proyecto en el núcleo y la lógica del dominio.
  • Basar los diseños complejos en un modelo.
  • Iniciar una creativa colaboración entre técnicos y expertos del dominio para interactuar lo más cercano posible a los conceptos fundamentales del problema.

Ejemplos de DDD[editar]

  • Puede verse el ejemplo de aplicación DDD Java en el libro Domain-Driven Design.[1][3]

Referencias[editar]

  1. a b Evans, E., Domain-Driven Design - Tackling Complexity in the Heart of Software, 2004, Addison-Wesley.
  2. Loscalzo, Jonathan (18 de junio de 2018). «Domain Driven Design: principios, beneficios y elementos — Primera Parte». Medium (en inglés). Consultado el 18 de junio de 2020. 
  3. https://github.com/citerus/dddsample-core

Véase también[editar]

Enlaces externos[editar]