DDD Design Patterns

Room 8
09:00 - 17:00
(UTC+02

2 Days

Monday 
The design patterns from Domain-Driven Design are gradually entering the collective consciousness of software developers. But most of the information out there focuses on mechanistic implementation details of the patterns: how to make an Entity in [insert favourite programming language], how to use the Repository pattern with [insert new hot ORM], how to make immutable Value Objects in [insert legacy framework]...

Applied individually, these patterns are useful, but are not giving you the full potential of Domain-Driven Design.


This training has a different approach. We address technical concerns in implementing the DDD patterns, but the focus is on the underlying principles and heuristics for building great domain-centric object-oriented code.

  • Why you’re underusing Value Objects
  • Seeing objects as containers of lifecycles and consistency
  • Discovering deeper domain concepts such as business rules, and lifting them into first class domain objects
  • The relevance of processes, behaviour, temporal modelling... for finding better Aggregate boundaries
  • How mutable software designs have distorted our perception of mutability in the domain
  • Better heuristics for understanding a complex domain, and using them to drive a more focused design
  • Reducing our dependence on service classes
  • Designing an implementation model that not only encapsulates the domain, but communicates that design to future programmers and reduces their surface area for bugs
  • ...

This workshop, aimed at programmers, is designed to give you immediate benefits when modelling and implementing the most important parts of your codebase.

Participant Requirements:

The workshop is programming-language agnostic. You are expected to have some experience working in an object-oriented language, and have some notions of object-oriented design patterns and principles.

Mathias Verraes

Mathias Verraes is the founder of Aardling, a software modelling & design consultancy, with a penchant for complex environments. His focus is on design strategy and messaging-centric domain modelling. Since leaving a lead developer job in 2011 and moving to consulting in 2011, Mathias has worked with clients in Finance, Government, Supply Chain, Mobility, Energy, E-Commerce, and more.

Mathias writes about software design at verraes.net since 2011. As a speaker, he's been at major conferences such as NDC and Goto, and has been a keynote speaker DDD eXchange, ExploreDDD, KanDDDinsky, and others. Occasionally, he teaches courses on Domain-Driven Design & messaging architecture. Mathias is also the founder of the DDD Europe conference.

Mathias has a Masters in Music from the Royal Conservatory of Ghent, and is an autodidact on software. When he’s at home in Kortrijk, Belgium, he helps his two sons build crazy Lego contraptions.