Domain Driven Design (DDD)

Artículos Técnicos

Domain Driven Design (DDD)
11 de Marzo de 2020

En la actual tendencia de Transformación Digital, las empresas de avanzada han adoptado los aceleradores que trae la Cloud, tales como las arquitecturas de Microservicios, pero sin embargo si no llega al nivel esperado a las necesidades del negocio, no va a ser para nada útil. Entonces es cuando Diseño guiado por el dominio (DDD) aparece como una gran ayuda en el ordenamiento conceptual de cómo gestionar el diseño de microservicios.

De hecho, para diseñar un buen software, es importante conocer sobre qué trata ese software. Para crear un sistema de software para un banco, se necesita de un buen entendimiento de los procesos que se llevan a cabo en el, uno ha de entender el Domain del banco.

¿Qué es Diseño guiado por el dominio?
En el desarrollo de software, el enfoque del diseño guiado por el dominio se utiliza para necesidades muy complejas, para conectar la implementación a un modelo en evolución de la idea principal del modelo de negocio. Pone el foco en el problema relevante y básicamente ayuda a identificar la arquitectura e informar sobre los mecanismos que el software necesita replicar.

Diseño guiado por el dominio tiene un valor estratégico y se basa en mapear la idea de negocio domain en los artefactos del software. Organizando los artefactos del código en línea con el problema de negocio, usando el mismo lenguaje.

Diseño guiado por el dominio no es una metodología, trata de el diseño de la arquitectura del software, dando una estructura con unas prácticas de toma de decisiones que ayudan a proyectos de software con dominios complicados.

El enfoque DDD fue introducido por Eric Evans en el libro “Domain-Driven Design: Tackling Complexity in the Heart of Software“.

¿Qué es el dominio?
Área temática o campo a la que un usuario aplica un software.

¿Qué es el modelo de dominio?
Representa la terminología y los conceptos clave del dominio del problema. Identifica las relaciones entre las entidades incluidas dentro del ámbito del dominio del problema, identifica sus atributos y proporciona una visión estructural del dominio.
Domain driven design es un enfoque para el desarrollo de software definido por Eric Evans en su libro Domain-driven design: Tackling Complexity in the Heart of Software, que se centra en un modelo rico, expresivo y en constante evolución para resolver problemas del dominio de una forma semántica.