Mathias Verraes

Student of Systems

Talk - Temporal Analysis Patterns

When we design software for a complex domain, it helps to have a deep understanding of that domain, and reflect it in the system's model. That's the central premise of DDD. Many interesting business domains are temporal; they involve many interconnected processes and behaviours happening over time.

This is where traditional ways of understanding our domains fall short: they look at the artifacts of those processes, but not enough at the processes themselves.

Temporal analysis patterns help us see recurring patterns in how the processes in our domains work and are organised. The insights well get from applying the patterns, show us how to choose objects, components, and services. This leads to better decoupled systems, both internally and at the level of integrations.

Workshop - DDD Modelling vs Implementation

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 one day 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.

Register now

About

Mathias Verraes advises organisations on designing and modelling software for complex environments, including architecture, analysis, testing, and refactoring “unmaintainable” systems. He has worked with clients in Government, Logistics, Mobility, Energy, E-Commerce, and more.

He teaches Domain-Driven Design courses and curates the DDD Europe conference. When he’s at home in Kortrijk, Belgium, he helps his two sons build crazy Lego contraptions.

See all speakers

Don't miss a thing

We won't spam you, promised