
Learning Domain-Driven Design
Vladik Khononov
- Editorial
- O'Reilly
- Año
- 2021
- Páginas
- ~340
- Nivel
- Básico
De qué trata
Manual moderno y pragmático de Vladik Khononov que enseña a aplicar el Diseño Guiado por el Dominio (Domain-Driven Design o DDD) para conectar estrechamente la arquitectura de software con los objetivos estratégicos del negocio. Está dirigido a desarrolladores de software, ingenieros de backend y arquitectos que buscan una aproximación clara y directa a DDD sin perderse en la densidad enciclopédica de la literatura clásica original. Resulta indispensable contar con experiencia sólida en desarrollo de aplicaciones empresariales y programación orientada a objetos.
La obra divide la disciplina en diseño estratégico y táctico: en la fase estratégica enseña a descomponer sistemas identificando subdominios (Core, Supporting y Generic), a forjar un lenguaje ubicuo (Ubiquitous Language) compartido con los expertos de negocio y a definir Bounded Contexts integrados mediante mapas de contexto (Context Maps con relaciones como Customer-Supplier, Conformist, Anticorruption Layer u Open-Host Service). En la fase táctica, detalla cómo modelar la lógica empresarial a través de patrones como Transaction Script, Active Record, Modelo de Dominio rico (con Entidades, Value Objects y Aggregates) y Event Sourcing con almacenes de eventos (Event Store). Asimismo, analiza la intersección de DDD con microservicios, eventos de dominio, sagas, administradores de procesos y arquitecturas de datos analíticas como Data Mesh.
El aprendizaje se asienta en el caso transversal didáctico de «WolfDesk» (un sistema SaaS de gestión de tickets) y un valioso estudio de caso real en su apéndice sobre la empresa emergente «Marketnovus», donde el autor documenta con honestidad errores arquitectónicos cometidos en cinco Bounded Contexts y las refactorizaciones implementadas para resolverlos. Además, cada capítulo incluye ejercicios y preguntas de modelado de dominio. Su mayor virtud es despojar a DDD de dogmas académicos y ofrecer pautas realistas de cuándo aplicar cada patrón. No incluye un repositorio de código ejecutable completo de extremo a extremo, por lo que conviene tener fluidez leyendo fragmentos de código orientados a objetos (tipo C# o Java).
- Domain-Driven Design (DDD)
- Diseño estratégico
- Diseño táctico
- Bounded Contexts
- Lenguaje ubicuo
- Subdominios
- Aggregates y Value Objects
- Event Sourcing
- Context Mapping
- Microservicios
- Data Mesh
¿Cómo enseña?
Teoría + práctica
- ✓ Incluye ejercicios
- ✗ Sin proyectos

