Vai al contenuto
Matthias Bohlen

iSAQB® CPSA Advanced Level Workshop

Domain-Driven Design

Event Storming, Context Map, modelli di dominio e architettura del software. Il Domain-Driven Design in un workshop intensivo di tre giorni con Matthias Bohlen (30 CP per iSAQB® CPSA-A).

giorni
3
crediti
30
persone max.
12
lingua
DE / EN
Prenota il tuo posto ↓

Nei progetti software complessi, il risultato spesso non è quello che si voleva, perché gli esperti di dominio e gli ingegneri non si capiscono. E se il business e gli sviluppatori parlassero la stessa lingua, così da accorgersi se intendono davvero la stessa cosa?

Che cosa aspettarti dal workshop

In questo modulo Advanced Level impari a suddividere un dominio in parti chiare, a sviluppare una lingua per ciascuna di esse e a usare i pattern DDD per progettare un'applicazione modellata sul suo dominio.

Insieme ci esercitiamo, su un'applicazione di esempio, in ogni passo verso un'architettura orientata all'applicazione e di alta qualità. Vedrai quanto può essere semplice un progetto quando ti impegni a fondo sul dominio e sui binari architetturali del Domain-Driven Design.

Te ne andrai con una solida comprensione dei concetti del DDD e, cosa altrettanto importante, con la sicurezza necessaria per applicarli davvero nel tuo lavoro quotidiano.

Corso accreditato iSAQB

Corso accreditato per la certificazione iSAQB® Certified Professional for Software Architecture, Advanced Level (CPSA-A). Vale 30 crediti (10 metodologici · 20 comunicativi).

Contenuti

  1. 01

    Dominio, modello e Ubiquitous Languagedominio, modello di dominio, Ubiquitous Language, modulo, entity, value object, aggregate, service, factory, repository, domain event

  2. 02

    Knowledge crunching, la strada verso il modellomodellazione agile ed evolutiva, valorizzazione degli esperti di dominio, modi di collaborare su un modello, strumenti per catturarlo

  3. 03

    Dal modello all'implementazioneclassi di dominio ed elementi tecnici, il rapporto tra modello e codice, lingua e qualità del codice

  4. 04

    Il modello nell'architettura applicativaHexagonal Architecture, Command-Query Responsibility Segregation, Layered Architecture, Dependency Injection, Behaviour-Driven Development

  5. 05

    Design strategico 1, separare i modellisubdomain, Bounded Context, subdomain core, di supporto e generici a confronto, Context Map

  6. 06

    Design strategico 2, Context MappingCustomer/Supplier, Open Host Service, Shared Kernel, domain event per la comunicazione, Anticorruption Layer, Separate Ways

A chi è rivolto

Architetti del software e sviluppatori che progettano o fanno evolvere sistemi. Dovresti avere esperienza in progetti IT o nello sviluppo di prodotti. Non serve conoscere una tecnologia o un linguaggio di programmazione in particolare per seguire e partecipare. UML aiuta, ma non è richiesto.

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

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

Un esperimento: un workshop di Event Storming con 60 persone al Software Architecture Summit di Berlino.

Prerequisiti

Dovresti avere esperienza in progetti IT o nello sviluppo di prodotti. Non serve conoscere una tecnologia o un linguaggio di programmazione in particolare per seguire e partecipare. UML aiuta, ma non è richiesto.

Che cosa fa il Domain-Driven Design

Il Domain-Driven Design (DDD) ti dà proprio questa lingua. Esperti di dominio e sviluppatori modellano insieme nella lingua del dominio, con tipi predefiniti di elementi costitutivi e pattern. In questo modo diventa davvero chiaro come dovrà essere la soluzione futura. La comunicazione si semplifica e il risultato non lascia ambiguità.

Giornata con l'agente: Domain-Driven Design per te e il tuo agente

Dopo il corso puoi aggiungere una giornata con l'agente facoltativa, online o in presenza. Nel corso impari come esperti di dominio e sviluppatori elaborano insieme un modello. Nella giornata con l'agente porti al tavolo un terzo partner: il tuo agente IA. Il pensiero di fondo resta a te. Il tuo agente è il tuo sparring partner e crea gli artefatti. Ti eserciti per tutta la giornata su un unico sistema di esempio.

  • Dal caos del workshop a una lingua condivisa: il tuo agente ordina i risultati di un workshop di Event Storming e propone termini, eventi e candidati aggregate. Quali termini entrino a far parte dell'Ubiquitous Language lo decidi tu con gli esperti di dominio.
  • L'agente come intervistatore: il tuo agente ti interroga su uno scenario di dominio concreto e mette alla prova le tue ipotesi finché le lacune del modello non sono colmate. Chiede la conoscenza del dominio invece di inventarla.
  • Separare i modelli: tu decidi, l'agente disegna: decidi tu quali subdomain sono core, di supporto o generici. Da lì il tuo agente abbozza i Bounded Context Canvas e una Context Map, e tu li revisioni.
  • Dal modello al codice, e ritorno: il tuo modello di dominio diventa lo stampo di una fonderia del software basata su agenti. Il tuo agente vi cola un Bounded Context. Se il risultato è sbagliato, correggi lo stampo, non il pezzo fuso.

Alla fine della giornata sai quale lavoro di modellazione puoi delegare e quale non delegheresti mai. Il tuo agente è pronto a lavorare nel tuo progetto già da lunedì.

Per prenotare la giornata con l'agente, rivolgiti al tuo partner di formazione. Per un corso in azienda, contattami.

Opzione: consulenza per introdurre il DDD nella tua azienda

Ad accompagnare il corso ho creato un programma di consulenza online. Rende facili i primi passi con il DDD nella tua azienda, per te e per i tuoi team.

Trovi il programma qui:

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

Svolgimento

Un mix equilibrato di presentazioni ed esercizi pratici. Con la mia guida impari in gruppo come far incontrare esperti di dominio e sviluppatori e costruire un modello di dominio della tua applicazione, in una lingua chiara, semplice, precisa e condivisa.

Online

Dal 2020 insegno il DDD anche online, con Zoom (o Microsoft Teams se necessario) come piattaforma video e Miro come lavagna online. Per questo ho allestito uno studio video completo, con hardware professionale da broadcast.

Ecco alcuni risultati dei corsi DDD online:

Una lavagna di Event Storming per un servizio di consegna pizze: file di foglietti adesivi arancioni con gli eventi, dall'ordine online fino al pagamento e alla valutazione, raggruppate in Bounded Context come acquisti online, cucina, logistica, finanza e controllo qualità, con collegamenti upstream e downstream tra loro.
Un modello big picture con i Bounded Context disegnati. La lavagna viene da un corso in lingua tedesca.
Un modello di processo di Event Storming su una lunga lavagna: una catena di eventi, comandi, policy, sistemi e read model che va dall'arrivo di un ordine di consegna alla consegna della pizza, incorniciata da una situazione a sinistra e da un esito a destra.
Un modello di processo di un singolo Bounded Context. La lavagna viene da un corso in lingua tedesca.
Un modello di Event Storming a livello di design: i comandi per le consegne ad hoc e programmate portano a un grande aggregate giallo chiamato Consegna, che emette eventi come consegna accettata, rilasciata e programmata, con una policy di pianificazione che torna indietro.
Un modello di progettazione software per un singolo aggregate. La lavagna viene da un corso in lingua tedesca.

Prenota il tuo posto

Un corso in azienda? Chiama il +49 170 772 8545 o scrivi a mbohlen@mbohlen.de.