NICOLÁS BOTTARINI
Back to the path

The path

Domain-Driven Design

2241 pages of reading · 2 h 5 min of video

DDD helps you tackle complex domains: developers and business experts build a model and a shared language together. It starts with strategic design (bounded contexts and how they integrate) and continues with the tactical patterns to implement the model.

Topics

Stage 7 · Domain-Driven Design
  • Strategic DDD

    Problem Domain, Core Domain, Subdomains, Bounded Contexts, Context Map, Domain Model, Transaction Script, Ubiquitous Language, Anticorruption Layer, Shared Kernel, Open-Host Service, Separate Ways, Partnership, Upstream/Downstream, Customer-Supplier, Conformist, Use Cases

  • Knowledge Crunching

    Vision, Powerful Questions, CRC Cards, Impact Mapping, Event Storming

  • Bounded Context Integration

    Database Integration, Flat File Integration, RPC, Messaging, REST, Eventual Consistency, Event-Driven Reactive DDD

  • Value Objects

  • Entities

  • Domain Services

  • Domain Events

  • Aggregates

  • Factories

  • Repositories

  • Event Sourcing

  • Application Services

    Command Processor, Publish/Subscribe, Request/Reply, async/await

  • DDD UI

    Task Based UI, Composed UI

  • CQRS

  • Reporting

Resources

Katas to practice

Corporate Hotel Booking

Corporate Hotel Booking

Build a corporate hotel booking engine using Outside-In TDD

ProficientLong
View kata
Mastermind

Mastermind

Recreate the classic Mastermind game using TDD

ProficientLong
View kata
Zombie Survivor

Zombie Survivor

The zombie apocalypse is here!! A fun game to improve TDD and design skills

ProficientLong
View kata
Social Network

Social Network

Build an X-like social network, from the console to the web and mobile

ExpertLong
View kata