Building Blocks
Perché Domain-Driven Design
- Quale problema risolviamo
- Ambito di applicazione
- The journey, not the destination
- La regola del fight club
- Il traino dei Microservizi
- DDD come un bersaglio in movimento
- Perché questo libro?
Comprendere il dominio
- Ubiquitous Language
- Cosa non è
- Bounded Contexts
- Modelli senza compromessi
- L’importanza di proteggere i confini
- Complessità accidentale
- Creative Collaboration
- Model Exploration Whirlpool
- Un’opzione non è abbastanza
- Cosa non è
- Breakthrough
- Deliberate Discovery
- EventStorming
- Big Picture EventStorming
- Process Modelling
Strategia
- Il rapporto con il business
- Strategic Distillation
- Cosa non è
- Sviluppare nel core domain
- Trovare il Core Domain con Big Picture EventStorming
- Context Mapping
- Brownfield Context Mapping - Scegliere le battaglie
- Greenfield Context Mapping - Disegnare i confini
- Team Topologies
Architetture
- Blue Book Architecture
- Architettura a strati
- Tactical patterns
- L’effetto combinato
- Implementare i Bounded Context
- Architettura Esagonale
- Red Book
- Comandi ed eventi
- Services e layers
- Command-Query Responsibility Segregation (CQRS)
- Segregazione forte
- Event Sourcing
- Implementare aggregati in Event Sourcing
- Event Store
- CQRS/ES
- Event-Driven Architecture
- Domain Events vs Integration Events
- Microservizi
- La sovrapposizione con i Bounded Context
- Mantenere la visione d’insieme
- Functional Programming
- Actor Model
- Software Design EventStorming
- Precisi nel dominio, aperti nell’implementazione
- Behaviour-Driven Development
- Va bene tutto?
- Storie
DDD e Microservizi
- Introduzione
- DDD loves MS
- La classe che tutti vogliono
- Microservizi a livello di Bounded Context
- La PCI-DSS, questa sconosciuta
- E infine venne il M O N O L I T E…
- Brutte Storie
- Mi sembra che vada tutto troppo bene
- Cosa vuoi che succeda se rinominiamo un campo?
- Quindi che devo fare?
- Conclusioni
Domain-Driven Design: collaborazione creativa e onestà intellettuale
- Introduzione
- Collaborazione
- Creatività
- Onestà intellettuale
- Una visione sistemica
- Come metterlo in pratica?
Domain-Driven Front-end
- Un problema di linguaggio
- La prima divisione: introduciamo i Services
- Enter the Aggregates
- Una questione di Eventi
- Com’è andata a finire?
DDD e Actor Model
- Introduzione
- Un po’ di storia
- Arrivano i requisiti
- Il carrello
- L’implementazione
- Retrospettiva
Industrial Internet of Things e Domain-Driven Design
- IIoT e Domain-Driven Design
- Gestiamo il parcheggio
- Arrivano gli imprevisti
- Conclusioni
DDD per Non-Tecnici
- Introduzione
- Una chiacchierata tra uno sviluppatore e una Programme Manager
- Conclusioni
Il primo eCommerce in CQRS+ES: errori e successi
- Il cambio di mentalità nel codice e nella UX
- Eventi, stati e TDD
- Le soddisfazioni nel capire cosa succede in tempo zero
- Il Versioning
- Dagli automatismi di un “IoC container” al bootstrapper lungo un chilometro
- Conclusioni
- Bonus
DDD incontra Functional Programming
- Introduzione
- Di cosa parliamo quando parliamo di Functional Programming
- Cosa ci insegnano i Value Objects
- Il bello di non cambiare mai
- Quello che non sai di non sapere
- Functional Programming Language
- Refactor DDD to FP
- Introduzione al dominio
- Aggregate Root nella forma classica
- Primo Refactoring: completa immutabilità
- Secondo Refactoring: tipi di dati algebrici
- Prodotto
- Somma
- Pattern Matching
- Sfruttiamo gli ADT
- Terzo Refactoring: rimuoviamo le eccezioni
- Introduzione alle Monadi
- Fase di creazione
- Fase di combinazione
- Mettiamoci un po’ di zucchero
- Fase di consumo
- Rimuoviamo le eccezioni
- Application Layer
- Infrastructure layer
- FP adora Event Sourcing (e viceversa)
- Conclusioni
Gli autori dei capitoli contenuti in questo libro
- Alberto Acerbis
- Matteo Baglini
- Uberto Barbini
- Alberto Brandolini
- Julie Camosseto
- Alessandro Colla
- Marco Consolaro
- Emanuele DelBono
- Gianluca Padovani
- Francesco Strazzullo

