Ir al contenido
Matthias Bohlen

iSAQB® CPSA Advanced Level Workshop

Domain-Driven Design

Event Storming, Context Maps, modelos de dominio y arquitectura de software. Domain-Driven Design como taller intensivo de tres días con Matthias Bohlen (30 CP para iSAQB® CPSA-A).

días
3
créditos
30
personas máx.
12
idioma
DE / EN
Reserva tu plaza ↓

En los proyectos de software complejos, lo que sale a menudo no es lo que se quería, porque los expertos del dominio y los ingenieros no se entienden. ¿Y si la parte de negocio y los desarrolladores hablaran el mismo idioma, de modo que notaran si se refieren a lo mismo?

Qué te espera en el taller

En este módulo de Advanced Level aprendes a dividir un dominio en partes claras, a desarrollar un idioma para cada una de ellas y a usar los patrones de DDD para diseñar una aplicación moldeada por su dominio.

Juntos practicamos sobre una aplicación de ejemplo cada paso hacia una arquitectura de alta calidad y orientada a la aplicación. Verás lo sencillo que puede ser un diseño cuando te comprometes con el dominio y con las barreras de protección arquitectónicas de Domain-Driven Design.

Terminarás con una sólida comprensión de los conceptos de DDD y, lo que es igual de importante, con la confianza para aplicarlos de verdad en tu trabajo diario.

Curso acreditado por iSAQB

Curso acreditado para la certificación iSAQB® Certified Professional for Software Architecture, Advanced Level (CPSA-A). Vale 30 créditos (10 metodológicos · 20 comunicativos).

Contenido

  1. 01

    Dominio, modelo y Ubiquitous Languagedominio, modelo de dominio, Ubiquitous Language, module, entity, value object, aggregate, service, factory, repository, domain event

  2. 02

    Knowledge crunching, el camino hacia el modelomodelado ágil y evolutivo, dar autonomía a los expertos del dominio, formas de colaborar en un modelo, herramientas para capturarlo

  3. 03

    Del modelo a la implementaciónclases de dominio y bloques de construcción técnicos, cómo se relacionan el modelo y el código, lenguaje y calidad del código

  4. 04

    El modelo en la arquitectura de la aplicaciónHexagonal Architecture, Command-Query Responsibility Segregation, Layered Architecture, Dependency Injection, Behaviour-Driven Development

  5. 05

    Diseño estratégico 1, separar modelossubdomain, Bounded Context, subdomains core, supporting y generic, Context Map

  6. 06

    Diseño estratégico 2, Context MappingCustomer/Supplier, Open Host Service, Shared Kernel, domain events para la comunicación, Anticorruption Layer, Separate Ways

Para quién es

Arquitectos de software y desarrolladores que diseñan o hacen evolucionar sistemas. Deberías tener experiencia en proyectos de TI o en desarrollo de productos. No necesitas conocer ninguna tecnología ni ningún lenguaje de programación en concreto para seguir el curso y participar. UML ayuda, pero no es obligatorio.

"Event Storming und Strategic Design: DDD mit vielen Teams" mit @mbohlende. #SoftwareArchitectureSummit pic.twitter.com/ysQI35yvNT

Softw. Arch. Summit (@SoftwArchSummit) · 2016-09-26 ↗

Un experimento: un taller de Event Storming con 60 personas en el Software Architecture Summit de Berlín.

Requisitos previos

Deberías tener experiencia en proyectos de TI o en desarrollo de productos. No necesitas conocer ninguna tecnología ni ningún lenguaje de programación en concreto para seguir el curso y participar. UML ayuda, pero no es obligatorio.

Qué aporta Domain-Driven Design

Domain-Driven Design (DDD) te da ese idioma. Los expertos del dominio y los desarrolladores modelan juntos en el idioma del dominio, con tipos predefinidos de bloques de construcción y patrones. Así queda realmente claro cómo debe ser la solución futura. Simplifica la comunicación y hace que el resultado sea inequívoco.

Día de agente: Domain-Driven Design para ti y tu agente

Después del curso, puedes añadir un día de agente opcional, en línea o presencial. En el curso aprendes cómo los expertos del dominio y los desarrolladores elaboran juntos un modelo. En el día de agente sientas a la mesa a un tercer participante: tu agente de IA. El pensamiento de fondo sigue siendo tuyo. Tu agente es tu compañero de debate y crea los artefactos. Practicas con un único sistema de ejemplo durante todo el día.

  • Del caos del taller a un idioma compartido: tu agente ordena los resultados de un taller de Event Storming y propone términos, eventos y candidatos a aggregate. Qué términos pasan a formar parte de la Ubiquitous Language lo decides tú con los expertos del dominio.
  • El agente como entrevistador: tu agente te pregunta por un escenario concreto del dominio y pone a prueba tus supuestos hasta que se cierran las lagunas del modelo. Pide conocimiento del dominio en lugar de inventárselo.
  • Separar modelos: tú decides, el agente dibuja: tú decides qué subdomains son core, supporting o generic. A partir de ahí, tu agente esboza Bounded Context Canvases y una Context Map, y tú los revisas.
  • Del modelo al código, y de vuelta: tu modelo de dominio se convierte en el molde de una fundición de software agéntica. Tu agente funde a partir de él un Bounded Context. Si el resultado está mal, corriges el molde, no la pieza fundida.

Al final del día sabes qué trabajo de modelado puedes delegar y cuál no delegarías nunca. Tu agente queda preparado para trabajar en tu proyecto desde el lunes.

Para reservar el día de agente, pregunta a tu socio de formación. Para una formación en tu empresa, ponte en contacto conmigo.

Opción: consultoría para introducir DDD en tu empresa

Como complemento del curso, he creado un programa de consultoría en línea. Hace que los primeros pasos con DDD en tu propia empresa sean fáciles para ti y tus equipos.

Aquí encontrarás el programa:

Domain-Driven Design - Consulting | Matthias Bohlen ↗Für mehr Erfolg in der Software-Entwicklung. Persönliches Consulting mit dem DDD-Experten Matthias Bohlendomaindrivendesign.consulting

Desarrollo

Una combinación equilibrada de exposiciones y ejercicios prácticos. Con mi guía, aprendes en grupo a reunir a expertos del dominio y desarrolladores y a construir un modelo de dominio de tu aplicación, en un lenguaje claro, sencillo, preciso y compartido.

En línea

Desde 2020 también imparto DDD en línea, con Zoom (o Microsoft Teams si hace falta) como plataforma de vídeo y Miro como pizarra en línea. Para ello he montado un estudio de vídeo totalmente equipado con hardware profesional de retransmisión.

Aquí tienes algunos resultados de los cursos de DDD en línea:

Un tablero de Event Storming para un servicio de reparto de pizzas: filas de notas adhesivas naranjas con eventos, desde el pedido en línea hasta el pago y la valoración, agrupadas en Bounded Contexts como compra en línea, cocina, logística, finanzas y control de calidad, con enlaces upstream y downstream entre ellos.
Un modelo big picture con los Bounded Contexts dibujados. El tablero procede de un curso en alemán.
Un modelo de proceso de Event Storming en un tablero largo: una cadena de eventos, comandos, policies, sistemas y read models que va desde la llegada de un pedido de reparto hasta la entrega de la pizza, enmarcada por una situación a la izquierda y un resultado a la derecha.
Un modelo de proceso de un único Bounded Context. El tablero procede de un curso en alemán.
Un modelo de Event Storming a nivel de diseño: los comandos para repartos ad hoc y programados llevan a un gran aggregate amarillo llamado Reparto, que emite eventos como reparto aceptado, liberado y programado, con una policy de planificación que vuelve hacia atrás.
Un modelo de diseño de software para un único aggregate. El tablero procede de un curso en alemán.

Reserva tu plaza

¿Una formación en tu empresa? Llama al +49 170 772 8545 o escribe a mbohlen@mbohlen.de.