
Corso di Domain-Driven Design (DDD)
Padroneggi il Domain-Driven Design e costruisca software che rifletta accuratamente la complessa realtà aziendale. Questo corso La guida dalla filosofia centrale del DDD fino ai modelli strategici e tattici avanzati, coprendo aggregati, bounded context, eventi di dominio e architettura esagonale. Sia che progetti sistemi greenfield o che districhi codebase legacy, acquisirà gli strumenti per modellare domini con precisione e sicurezza.
Cosa imparerai:
Imparerà ad applicare pattern DDD sia strategici che tattici a sistemi software reali. Il corso affronta concetti fondanti come linguaggio ubiquo e decomposizione in sottodomini, per poi passare ai blocchi di costruzione: entità, value object, aggregati, repository e servizi di dominio. Progetterà bounded context, produrrà mappe di contesto e implementerà architetture guidate dagli eventi utilizzando eventi di dominio e saghe. Argomenti avanzati includono CQRS, architettura esagonale, event sourcing e migrazione incrementale dei sistemi legacy. Svilupperà anche competenze pratiche nella facilitazione dell'Event Storming, nella collaborazione con esperti di dominio e in strategie complete di test DDD.
Come studi in modo pratico Corso di Domain-Driven Design (DDD)
Come metti in pratica Corso di Domain-Driven Design (DDD)
Per te che sei un'azienda e vuoi formare il tuo team
Su Dedika per aziende, il corso include esercizi ed esempi personalizzati sul tuo business e secondo le esigenze della tua azienda.
Contenuto del corso
8 Capitoli • 40 LezioniDurata tra 4 e 360 ore (decidi tu)
Capitolo 1NascondiNascondi dettagliVedi dettagliFondamenti del Domain-Driven Design
Fondamenti del Domain-Driven Design
Lezione 1 • Esperti di dominio e collaborazione
Illustra le tecniche per coinvolgere gli esperti di dominio come partner attivi nella progettazione. Gli studenti si esercitano in conversazioni di knowledge crunching e workshop strutturati.
Lezione 2 • Pattern strategici e tattici del DDD
Distingue le due famiglie di pattern e spiega come si completano a vicenda. Definisce la tabella di marcia per il resto del corso.
Lezione 3 • Il concetto di linguaggio ubiquo
Introduce il linguaggio condiviso tra sviluppatori ed esperti di dominio come pratica fondante del DDD. Gli studenti imparano a identificare e costruire un glossario vivente.
Lezione 4 • Comprendere il dominio e i sottodomini
Insegna la scomposizione di un dominio di business in sottodomini core, di supporto e generici. Gli studenti la applicano a scenari reali per dare priorità all'investimento progettuale.
Lezione 5 • Che cos'è il Domain-Driven Design
Definisce il DDD come una filosofia software incentrata sulla complessità del dominio di business. Fornisce agli studenti le motivazioni prima di introdurre qualsiasi pattern tattico.
Capitolo 2NascondiNascondi dettagliVedi dettagliBlocchi fondamentali: entità e oggetti valore
Blocchi fondamentali: entità e oggetti valore
Lezione 1 • Scegliere tra entità e oggetti valore
Fornisce criteri decisionali per classificare correttamente i concetti di dominio. Gli studenti analizzano casi ambigui e giustificano le loro scelte di modellazione.
Lezione 2 • Modellare il comportamento di dominio ricco
Va oltre i contenitori di dati per collocare la logica di business all'interno degli oggetti di dominio. Gli studenti implementano metodi di dominio che fanno rispettare gli invarianti.
Lezione 3 • Pattern pratici di implementazione
Traduce i modelli concettuali in strutture di codice funzionanti. Gli studenti applicano factory method, costruttori di copia e override di uguaglianza.
Lezione 4 • Entità: identità e ciclo di vita
Definisce le entità come oggetti con un'identità continua attraverso i cambiamenti di stato. Gli studenti apprendono le strategie di assegnazione dell'identità e la gestione del ciclo di vita.
Lezione 5 • Oggetti valore: immutabilità e uguaglianza
Tratta gli oggetti valore come concetti di dominio descrittivi e privi di effetti collaterali. Gli studenti implementano l'immutabilità e l'uguaglianza strutturale nel codice.
Capitolo 3NascondiNascondi dettagliVedi dettagliAggregati e radici di aggregato
Aggregati e radici di aggregato
Lezione 1 • Fondamenti degli aggregati
Definisce gli aggregati come unità di coerenza composte da entità e oggetti valore. Gli studenti imparano perché gli aggregati esistono e quali problemi risolvono.
Lezione 2 • Il ruolo della radice di aggregato
Spiega l'entità radice come unico punto di accesso esterno per un aggregato. Gli studenti implementano l'accesso controllato dalla radice e il riferimento di identità.
Lezione 3 • Invarianti dell'aggregato e convalida
Illustra l'applicazione di regole di business che coinvolgono più oggetti all'interno di un aggregato. Gli studenti scrivono controlli di invariante attivati da comandi di cambiamento di stato.
Lezione 4 • Comunicazione tra aggregati
Affronta il modo in cui gli aggregati interagiscono senza violare l'isolamento. Gli studenti utilizzano eventi di dominio e coerenza finale per coordinarsi attraverso i confini.
Lezione 5 • Progettare i confini degli aggregati
Insegna le euristiche per tracciare confini di aggregato corretti. Gli studenti evitano aggregati eccessivamente grandi e i problemi di concorrenza che causano.
Capitolo 4NascondiNascondi dettagliVedi dettagliRepository, factory e servizi di dominio
Repository, factory e servizi di dominio
Lezione 1 • Servizi di dominio per logica senza stato
Identifica le operazioni che non appartengono a nessuna singola entità o oggetto valore. Gli studenti implementano servizi di dominio che esprimono logica di business pura.
Lezione 2 • Pattern Factory nel DDD
Spiega le factory come incapsulatori di logica di creazione complessa. Gli studenti costruiscono factory che impongono invarianti durante la costruzione dell'oggetto.
Lezione 3 • Strategie di implementazione del repository
Illustra implementazioni concrete di repository e i loro compromessi. Gli studenti mappano le radici di aggregato ai supporti di persistenza senza far trapelare l'infrastruttura nel dominio.
Lezione 4 • Integrare i pattern di supporto
Mostra come repository, factory e servizi collaborano in un caso d'uso completo. Gli studenti tracciano un comando dal livello applicativo attraverso il dominio e ritorno.
Lezione 5 • Fondamenti del pattern Repository
Definisce i repository come astrazioni simili a collezioni sulla persistenza. Gli studenti implementano interfacce di repository che nascondono la tecnologia di archiviazione al dominio.
Capitolo 5NascondiNascondi dettagliVedi dettagliContesti delimitati e mappatura dei contesti
Contesti delimitati e mappatura dei contesti
Lezione 1 • Pattern di mappatura dei contesti
Introduce il catalogo completo dei pattern di relazione tra contesti. Gli studenti selezionano i pattern appropriati in base alle dinamiche del team e alle esigenze di integrazione.
Lezione 2 • Fondamenti dei contesti delimitati
Definisce un contesto delimitato come un confine esplicito all'interno del quale un modello è coerente. Gli studenti identificano i confini di contesto nei sistemi esistenti.
Lezione 3 • Disegnare e documentare le mappe di contesto
Insegna la notazione e gli strumenti per produrre mappe di contesto leggibili. Gli studenti creano mappe che comunicano i contratti di integrazione a tutte le parti interessate.
Lezione 4 • Progettazione dell'Anti-Corruption Layer
Approfondisce l'ACL come confine di traduzione che protegge il modello di dominio. Gli studenti implementano adattatori e traduttori che isolano i concetti del modello esterno.
Lezione 5 • Topologie del team e proprietà del contesto
Collega la progettazione del contesto delimitato alla struttura del team e alla Legge di Conway. Gli studenti allineano i confini del contesto al carico cognitivo del team e ai percorsi di comunicazione.
Capitolo 6NascondiNascondi dettagliVedi dettagliEventi di dominio e architettura guidata dagli eventi
Eventi di dominio e architettura guidata dagli eventi
Lezione 1 • Eventi di dominio come fatti di business
Definisce gli eventi di dominio come registrazioni immutabili di qualcosa di significativo che è accaduto. Gli studenti distinguono gli eventi di dominio dai messaggi tecnici e dalle notifiche di sistema.
Lezione 2 • Introduzione all'Event Sourcing
Introduce l'Event Sourcing come strategia di persistenza alternativa guidata dagli eventi di dominio. Gli studenti valutano quando l'Event Sourcing è appropriato e quando aggiunge complessità non necessaria.
Lezione 3 • Coerenza finale e pattern Saga
Affronta i processi di business multi-step che coinvolgono più aggregati e contesti. Gli studenti implementano saghe basate su coreografia e orchestrazione.
Lezione 4 • Integrare gli eventi attraverso i contesti delimitati
Estende gli eventi di dominio all'integrazione tra contesti tramite infrastruttura di messaggistica. Gli studenti progettano eventi di integrazione che rispettano l'autonomia del contesto.
Lezione 5 • Sollevare e gestire gli eventi di dominio
Illustra i meccanismi di pubblicazione degli eventi dagli aggregati e la sottoscrizione ad essi. Gli studenti implementano il dispatch di eventi in-process e la registrazione dei gestori.
Capitolo 7NascondiNascondi dettagliVedi dettagliArchitettura applicativa e stratificazione
Architettura applicativa e stratificazione
Lezione 1 • Architettura a strati nel DDD
Introduce la classica architettura DDD a quattro strati e le sue regole di dipendenza. Gli studenti mappano i concetti di dominio al livello corretto.
Lezione 2 • Preoccupazioni infrastrutturali e inversione delle dipendenze
Mostra come l'inversione delle dipendenze mantenga il livello di dominio libero da dipendenze infrastrutturali. Gli studenti collegano gli adattatori infrastrutturali utilizzando container di dependency injection.
Lezione 3 • Servizi applicativi e casi d'uso
Definisce i servizi applicativi come orchestratori della logica di dominio per casi d'uso specifici. Gli studenti mantengono i servizi applicativi liberi da regole di business.
Lezione 4 • Fondamenti del pattern CQRS
Introduce la Command Query Responsibility Segregation come complemento al DDD. Gli studenti separano i modelli di scrittura da quelli di lettura per ottimizzarli in modo indipendente.
Lezione 5 • Architettura esagonale e Ports and Adapters
Presenta l'architettura esagonale come moderna alternativa che impone l'isolamento del dominio. Gli studenti definiscono le porte come interfacce e gli adattatori come implementazioni infrastrutturali.
Capitolo 8NascondiNascondi dettagliVedi dettagliDDD avanzato: modellare domini complessi
DDD avanzato: modellare domini complessi
Lezione 1 • Distillazione strategica del dominio core
Concentra l'investimento progettuale sul dominio core attraverso tecniche di distillazione. Gli studenti producono un documento di core evidenziato e un piano di estrazione dei sottodomini generici.
Lezione 2 • Gestire la complessità del dominio con i moduli
Utilizza i moduli per organizzare grandi modelli di dominio in pacchetti coesi e liberamente accoppiati. Gli studenti applicano metriche di coesione e accoppiamento alla progettazione dei moduli.
Lezione 3 • Principi di progettazione flessibile
Illustra i pattern di progettazione flessibile di Evans per rendere i modelli rivelatori di intenzioni e flessibili. Gli studenti applicano interfacce rivelatrici di intenzioni e funzioni prive di effetti collaterali.
Lezione 4 • Modellare politiche e regole di business
Affronta le regole di business complesse e mutevoli come oggetti di dominio espliciti. Gli studenti implementano i pattern Specification e Policy per incapsulare la logica delle regole.
Lezione 5 • Rifattorizzare verso una comprensione più profonda
Insegna il perfezionamento iterativo del modello guidato da una nuova comprensione del dominio. Gli studenti praticano il refactoring di rottura che scopre concetti di dominio nascosti.
Il tuo certificato valido di completamento
Questo corso è per te:
Sviluppatori software di medio livello: pronti a superare il pensiero incentrato su CRUD.
Architetti di soluzioni: alla ricerca di metodi strutturati per domare la complessità aziendale.
Ingegneri backend: frustrati da codebase che si allontanano dall'intento di business.
Responsabili tecnici: incaricati di guidare i team attraverso decisioni complesse di modellazione del dominio.
Consulenti software: che consigliano clienti su design di sistema scalabile e allineato al business.
Professionisti in transizione dall'analisi di business: che portano la conoscenza del dominio nei ruoli di progettazione software.
Cosa dicono i nostri studenti
Le sue lezioni sono perfette. Ho acquistato il pacchetto annuale e finalmente ho l'opportunità di seguire diversi argomenti di mio interesse senza dover cambiare piattaforma... vi ringrazio per tutto quello che fate, vi ho già raccomandati ad altre persone...

Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.

Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!

La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.

Principali percorsi formativi
FAQ
Chi è Dedika?
Il certificato è valido in Italia?
I corsi sono gratuiti?
Qual è il carico di lavoro del corso?
Come sono strutturati i corsi?
Come funzionano i corsi?
Qual è la durata dei corsi?
Qual è il costo o il prezzo dei corsi?
Cos’è un corso EAD o online e come funziona?
Corso PDF




















