Modelo de dominio - jahurtadod/domain-driven-design GitHub Wiki

¿Qué es un modelo de dominio?

Es un modelo de software del dominio empresarial muy específico en el que estás trabajando. A menudo se implementa como un modelo de objetos, donde esos objetos tienen tanto datos como comportamiento con un significado comercial literal y preciso.

La creación de un modelo de dominio único y cuidadosamente elaborado en el corazón de un núcleo, aplicación estratégica o subsistema es esencial para practicar el DDD. Con DDD su dominio los modelos tenderán a ser pequeños, muy centrados. Usando DDD, nunca intentas modelar toda la empresa comercial con un modelo de dominio único y grande.

Poner en marcha el modelo de dominio

Cada programa de software se relaciona con alguna actividad o interés de su usuario. Esa área temática a la que el usuario aplica el programa es el dominio de el software. Algunos dominios involucran el mundo físico: El dominio de un programa de reservas de avión implica que gente real se suba a un avión de verdad. Algunos dominios son intangibles: El dominio de un programa de contabilidad es dinero y finanzas. Los dominios de software normalmente tienen poco que ver con computadoras, aunque hay excepciones: El dominio de un código fuente El sistema de control es el desarrollo de software en sí mismo.

Para crear programas informáticos que participen de manera valiosa en las actividades de los usuarios, un equipo de desarrollo debe aportar un conjunto de conocimientos relacionados con esas actividades. La amplitud de los conocimientos requeridos puede ser desalentadora. El volumen y la complejidad de la información pueden ser abrumadores. Los modelos son herramientas para lidiar con esta sobrecarga. Un modelo es una forma de conocimiento selectivamente simplificada y conscientemente estructurada. Un modelo apropiado da sentido a la información y la centra en un problema.

Un modelo de dominio no es un diagrama en particular; es la idea que el diagrama pretende transmitir. No es sólo el conocimiento en la cabeza de un experto en dominios; es una abstracción selectiva y organizada de ese conocimiento. Un diagrama puede representar y comunicar un modelo, al igual que un código cuidadosamente escrito.

El modelado de dominios no es una cuestión de hacer un modelo tan "realista" como posible. Incluso en un dominio de cosas tangibles del mundo real, nuestro modelo es un creación artificial. Tampoco es sólo la construcción de un mecanismo de software que da los resultados necesarios. Es más bien como hacer cine, vagamente representando la realidad con un propósito particular. Incluso un documental no muestra la vida real sin editar. Así como un cineasta selecciona aspectos de la experiencia y los presenta en una forma idiosincrásica para contar una historia o un modelador de dominios elige un modelo particular por su utilidad.