Metodología y Herramientas

Introducción al diseño dirigido por dominios (DDD)

Descripción

Inicia: 07 de junio 2021 | Duración: 12 horas

Descripción
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 genral 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
3. Proyecto de diseño basado en dominios