
Domain-Driven Design
Eric Evans
- Editorial
- Addison Wesley
- Año
- 2003
- Páginas
- ~560
- Nivel
- Intermedio
De qué trata
El texto fundacional canónico (conocido internacionalmente como el "libro azul") donde Eric Evans introdujo y estructuró la filosofía de Domain-Driven Design (DDD) para combatir la complejidad en el núcleo de las aplicaciones de software. No depende de versiones concretas de tecnologías, utilizando ejemplos ilustrativos en Java y patrones orientados a objetos de la época (Smalltalk, patrones GoF, J2EE). Está dirigido a arquitectos de software, desarrolladores sénior y líderes técnicos con experiencia en desarrollo empresarial orientado a objetos que necesitan gobernar la lógica de negocio intrincada en sistemas de gran escala.
El libro establece las dos ramas complementarias del modelado de software: el diseño táctico y el diseño estratégico. En el plano táctico, define la creación de un Lenguaje Ubicuo (Ubiquitous Language) compartido entre expertos de negocio e ingenieros, así como los bloques de construcción fundamentales: Entidades (Entities), Objetos de Valor (Value Objects), Servicios de Dominio (Domain Services), Agregados (Aggregates), Módulos, Fábricas (Factories) y Repositorios (Repositories). En el plano estratégico, proporciona las herramientas conceptuales para sistemas a gran escala: Contextos Acotados (Bounded Contexts), Mapas de Contexto (Context Mapping), la destilación del Dominio Principal (Core Domain), y patrones de coexistencia como la Capa Anticorrupción (Anticorruption Layer), Shared Kernel y Conformist.
La obra ilustra sus conceptos mediante dominios del mundo real, destacando el sistema de enrutamiento y seguimiento logístico de transporte marítimo internacional (Cargo Shipping / Voyage Routing) y un caso histórico sobre diseño asistido de placas de circuito impreso (PCB). Su valor histórico y técnico es incalculable, pues sentó las bases de la arquitectura moderna de microservicios, Event Sourcing y CQRS; como contrapartida, su estilo de redacción es denso y conceptual, y deja fuera implementaciones modernas con bases de datos no relacionales o frameworks reactivos contemporáneos. Conviene contar con experiencia previa en diseño orientado a objetos y patrones de software para asimilar la profundidad de sus lecciones.
- Domain-Driven Design (DDD)
- Lenguaje Ubicuo
- Bounded Contexts
- Diseño estratégico
- Diseño táctico
- Entidades y Value Objects
- Agregados
- Repositorios
- Context Mapping
- Capa Anticorrupción
- Arquitectura de software
¿Cómo enseña?
Teórico
- ✗ Sin ejercicios
- ✗ Sin proyectos

