Scegli la tua lingua
Corso di Domain-Driven Design (DDD)
Più di 2 milioni di studenti in tutto il mondo

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.

Dedika per aziende

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.

Clicca qui

Contenuto del corso

8 Capitoli • 40 LezioniDurata tra 4 e 360 ore (decidi tu)

Capitolo 1Vedi dettagli

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 2Vedi dettagli

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 3Vedi dettagli

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 4Vedi dettagli

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 5Vedi dettagli

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 6Vedi dettagli

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 7Vedi dettagli

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 8Vedi dettagli

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.

Certificazione

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...
Giulio Carlo
Giulio CarloStudente di Marketing Digitale
Mi piace come le lezioni vanno dritte al punto e come riesco a cambiare capitoli e saltare contenuti di cui non ho bisogno.
Mariana Ferres
Mariana FerresStudentessa di Fotografia
Mi piace il contenuto e il modo di presentazione e trascrizione dei video, che accelera il processo!
Luciana Alvarenga
Luciana AlvarengaStudentessa di Nail Design
La piattaforma è veloce, semplice da usare. La diversità dei contenuti e i video complementari aiutano molto nell'apprendimento.
André Felipe
André FelipeStudente di Prompt Engineering

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