Este curso es una introducción al diseño basado en dominios
Este curso cubre los siguientes temas:
• Conceptos de diseño impulsado por dominio
• Diseño impulsado por dominios estratégicos o capacidades de negocio
• Bloques de construcción de diseño impulsado por dominio
• Arquitectura de aplicaciones bajo diseño controlado por dominio
Dirigido a
Este curso está dirigido a profesionales que trabajan como product owner, desarrolladores, ingenieros de negocio y en general a cualquier profesional que participe en el desarrollo de software con la nueva generación de herramientas.
Temario
Capítulo 1. Conceptos de diseño impulsados por dominios
- Diseño impulsado por dominio: ¿qué es?
- Diseño impulsado por dominio: lo que no es
- Espacio de problemas complejos
- Esfuerzo de diseño
- División del trabajo
- Diseño táctico
- Diseño Estratégico
- Idiomas separados
- Lenguaje ubicuo 1/2
- Lenguaje ubicuo 2/2
- Capturando el lenguaje ubicuo 1/3
- Capturando el lenguaje ubicuo 2/3
- Capturando el lenguaje ubicuo 3/3
- Dominio
- Ejemplos de dominio
- Tipos de dominios
- Subdominios
- Contexto
- Modelo
- Ejemplo de modelo de dominio: librería
- Modelo de dominio de librería
- Ejemplo de modelo de dominio: negocio de gabinetes personalizados
- Resumen
Capítulo 2. Diseño basado en dominios estratégicos
- Diseño Estratégico
- El modelo de dominio
- Creando el modelo
- Preocupaciones separadas
- Dominios frente a contextos
- Contextos delimitados
- Contextos delimitados independientes
- Análisis de la superposición en contextos delimitados
- Resolución de superposiciones con mapeo de contextos
- Tipos de mapeo
- Mapeo de asociaciones
- Kernel compartido
- Preocupaciones transversales
- Cliente-Proveedor
- Conformista
- Capa anticorrupción
- Servicio de host abierto
- Caminos separados
- Gran bola de barro (BBOM)
- Integración vía base de datos
- Resumen
Capítulo 3. Bloques de construcción de diseño impulsado por dominio
- Bloques de construcción
- Objetos de entidad
- Objeto de valor
- Objeto de valor: ejemplos
- Agregado 1/2
- Agregado 2/2
- Un ejemplo de agregado 1/2
- Un ejemplo de agregado 2/2
- Módulo
- Un ejemplo de módulo
- Niveles de granularidad
- Evento de dominio 1/2
- Evento de dominio 2/2
- Ventajas de eventos de dominio
- Servicios
- Ejemplos de servicios
- Repositorio
- Interfaz de repositorio genérico
- Interfaz de repositorio de dominio
- Fábrica
- Ejemplo de fábrica
- Resumen
Capítulo 4. Arquitectura de la aplicación bajo diseño controlado por dominio
- Arquitectura general
- Capa de interfaz / presentación
- Capa de aplicación
- Capa de dominio
- Capa de dominio: en la práctica
- Capa de infraestructura (servicios)
- Tecnologías para usar con Domain Driven Design
- Inyección de dependencia (DI)
- Programación orientada a aspectos (AOP)
- Programación orientada a aspectos (AOP)
- API de persistencia de Java (JPA)
- Resumen
Capítulo 5. Microservicios
- ¿Qué es un «microservicio»?
- Una analogía útil
- SOA – Relación de microservicios
- ESB – Relación de microservicios
- Diseños monolíticos tradicionales y su función
- Desventajas de los monolitos
- Pasar de un monolito heredado
- Al mudarse de un monolito heredado
- Las fuerzas impulsoras detrás de los microservicios
- ¿Cómo pueden ayudarlo los microservicios?
- La arquitectura de microservicios
- Microservicios de utilidad en AWS
- Interconectividad de microservicios
- Consideración de interoperabilidad de intercambio de datos
- Administrar microservicios
- Implementación de microservicios
- Incrustar bases de datos en Java
- Plataformas y marcos de aplicaciones orientados a microservicios
- Resumen
Capítulo 6. Arquitectura hexagonal y microservicios
- Una vista diferente de la arquitectura de aplicaciones
- Capas tradicionales para la interfaz de usuario tradicional
- Capas con DDD
- Métodos de interacción modernos
- Almacenamiento de datos moderno
- Arquitectura hexagonal: puertos y adaptadores
- DDD en arquitectura hexagonal
- El patrón del adaptador
- La estructura del patrón del adaptador
- Comportamiento del patrón de adaptador
- Entidades, valores y agregados
- Repositorios: descripción general
- Repositorios orientados a colecciones
- Repositorios orientados a la persistencia
- Servicios de dominio
- Eventos de dominio
- Descubriendo eventos
- Modelado de eventos
- Eventos y contextos delimitados
- Publicar eventos de dominio
- Almacenamiento de eventos de dominio
- Reenvío de eventos de dominio
- Integración entre contextos delimitados
- Asignación a microservicios
- Estilos de comunicación para microservicios
- Interfaces de usuario: cruzar los límites del sistema
- Estrategias de comunicación de la interfaz de usuario
- Revisión de la integración entre contextos delimitados: opciones
- Integración a través de servicios RESTful
- Integración a través de formatos binarios
- Integración a través de mensajería
- Resumen
Ejercicios de laboratorio
- Laboratorio 1. Conceptos de diseño basado en dominios
- Laboratorio 2. Laboratorio de diseño basado en dominios estratégicos
- Laboratorio 3. Proyecto de diseño basado en dominios