Domain-Driven Design: Tackling Complexity in the Heart of Software
Domain-Driven Design: Abordando la complejidad en el corazón del software
Eric Evans
Eric Evans ha escrito un libro fantástico sobre cómo puedes hacer que el diseño de tu software se ajuste a tu modelo mental del dominio del problema que estás abordando.
Su libro es muy compatible con XP.
No se trata de dibujar imágenes de un dominio; se trata de cómo piensas en él, el lenguaje que utilizas para hablar de él y cómo organizas tu software para reflejar tu mejora comprensión de él.
Eric piensa que aprender sobre tu dominio de problemas es tan probable que suceda al final de tu proyecto como al principio, por lo que refactorizar es una gran parte de su técnica.
El libro es una lectura divertida.
Eric tiene muchas historias interesantes y tiene una buena forma de expresarse.
Veo este libro como lectura esencial para los desarrolladores de software, es un futuro clásico.
- Ralph Johnson, autor de Patrones de diseño.
Si no crees que estás obteniendo valor de tu inversión en programación orientada a objetos, este libro te dirá lo que has olvidado hacer.
Eric Evans argumenta de manera convincente la importancia de la modelización de dominios como el enfoque central del desarrollo y proporciona un marco sólido y un conjunto de técnicas para lograrlo.
Esta es una sabiduría atemporal y perdurará mucho después de que las metodologías del momento hayan pasado de moda.
- Dave Collins, autor de Diseño de interfaces de usuario orientadas a objetos.
Eric entrelaza la experiencia del mundo real en el modelado y construcción de aplicaciones empresariales en un libro práctico y útil.
Escrito desde la perspectiva de un profesional confiable, las descripciones de Eric del lenguaje ubicuo, los beneficios de compartir modelos con los usuarios, la gestión del ciclo de vida de los objetos, la estructuración lógica y física de la aplicación, y el proceso y los resultados de la refactorización profunda son contribuciones importantes a nuestro campo.
- Luke Hohmann, autor de Más allá de la arquitectura de software.
Este libro pertenece en el estante de cada desarrollador de software reflexivo.
- Kent Beck.
Lo que Eric ha logrado capturar es una parte del proceso de diseño que los diseñadores de objetos experimentados siempre han utilizado, pero que hemos sido singularmente incapaces de transmitir al resto de la industria.
Hemos regalado fragmentos de este conocimiento..
pero nunca hemos organizado y sistematizado los principios de construcción de la lógica de dominio.
Este libro es importante.
- Kyle Brown, autor de Programación Java Empresarial con IBM WebSphere.
La comunidad de desarrollo de software reconoce ampliamente que el modelado de dominios es central para el diseño de software.
A través de los modelos de dominio, los desarrolladores de software pueden expresar una funcionalidad rica y traducirla en una implementación de software que realmente satisfaga las necesidades de sus usuarios.
Pero a pesar de su obvia importancia, hay pocos recursos prácticos que expliquen cómo incorporar un modelado de dominio efectivo en el proceso de desarrollo de software.
El Diseño Guiado por Dominio satisface esa necesidad.
Este no es un libro sobre tecnologías específicas.
Ofrece a los lectores un enfoque sistemático del diseño guiado por dominio, presentando un conjunto extenso de mejores prácticas de diseño, técnicas basadas en la experiencia y principios fundamentales que facilitan el desarrollo de proyectos de software que enfrentan dominios complejos.
Entrelazando la práctica de diseño y desarrollo, este libro incorpora numerosos ejemplos basados en proyectos reales para ilustrar la aplicación del diseño guiado por dominio al desarrollo de software del mundo real.
Los lectores aprenden cómo usar un modelo de dominio para hacer que un esfuerzo de desarrollo complejo sea más enfocado y dinámico.
Un núcleo de mejores prácticas y patrones estándar provee un lenguaje común para el equipo de desarrollo.
El cambio de énfasis, refactorizando no solo el código sino también el modelo subyacente del código, combinado con las frecuentes iteraciones del desarrollo ágil, lleva a una comprensión más profunda de los dominios y una comunicación mejorada entre el experto en dominio y el programador.
El Diseño Guiado por Dominio luego se basa en esta base y aborda la modelación y el diseño para sistemas complejos y organizaciones más grandes.
Los temas espeíficos incluyen: Lograr que todos los miembros del equipo hablen el mismo lenguaje.
Conectar el modelo y la implementación de manera más profunda.
Clarificar las distinciones clave en un modelo.
Gestionar el ciclo de vida de un objeto de dominio.
Escribir código de dominio que sea seguro de combinar de diversas maneras.
Hacer que el código complejo sea obvio y predecible.
Formular una declaración de visión de dominio.
Destilar el núcleo de un dominio complejo.
Descubrir conceptos implícitos necesarios en el modelo.
Aplicar patrones de análisis.
Relacionar patrones de diseño con el modelo.
Mantener la integridad del modelo en un sistema grande.
Lidiar con modelos en coexistencia en el mismo proyecto.
Organizar sistemas con estructuras a gran escala.
Reconocer y responder a avances en la modelación.
Con este libro en la mano, los desarrolladores orientados a objetos, analistas de sistemas y diseñadores tendrán la guía que necesitan para organizar y enfocar su trabajo, crear modelos de dominio ricos y útiles y aprovechar esos modelos en implementaciones de software de calidad y duraderas.