El DDD se centra en la importancia de entender bien el dominio de nuestro problema, en contraste al enfoque tradicional, centrado en los datos que tratamos. El objetivo es ser experto en el dominio, se modelan todas las entidades y reglas específicas y a partir de ahí, se implementan los casos de uso que lo queremos resolver.

Se recomienda realizar el desarrollo basado en dominio, que en datos… ya que al separar los casos de uso y las reglas de dominio podemos conseguir independencia en los casos de uso que pueden ir cambiando en el tiempo.

Todo esto se hace con el fin de separar la lógica de aplicación (casos de uso) de la lógica de dominio.

✅ Lenguaje común compartido para perfiles técnicos y no técnicos

✅ El coste de realizar modificaciones suele ser menor, ya que el dominio cambia con poca frecuencia y la velocidad de desarrollo a medio y largo y plazo

✅ El código del dominio es autoexplicativo

❌ Lento al principio de un proyecto

❌ Expertos en el dominio del problema

Se recomienda usar en proyectos complejos con un largo de vida esperado del software. Incertidumbre en los casos de uso o con previsión de cambios en el futuro. NO para una CRUD. Disponibilidad de un equipo comprometido en analizar detalladamente el dominio,


Arquitectura de Capas