Implementing Domain Driven Design

When developing software, we sometimes tend to play down problems to create simple solutions. In practice, things over time turn out not to be as simple as assumed. The domain is usually way more complicated than anticipated. Security constraints tend to impact on the design, etc.

Domain-driven design (DDD) is an approach to software development for complex needs by connecting the architecture and implementation to an evolving model of the problem domain. It can be applied as an agile approach to software development whilst recognising complexity. Mastering DDD and working from your domain will help you develop higher quality software products that will be better maintainable in the long run.

While the Introduction to Domain Driven Design course focuses on modelling, this workshop focuses on how DDD guides architectural decisions and how you can refine a domain model into working code.

Goal

Experience a number of implementation patterns of Domain Driven Design; practice how to derive an implementation from a domain model.

After this workshop, you will be able to:

  • implement a design containing events, commands, read models, policies, aggregates;
  • explain how a pattern can be implemented in different ways;
  • explain the value of having a shared domain language from high-level design to code;

Means

After a quick recap of the main Domain Driven Design concepts, we introduce the running case for the workshop. we start from an existing domain model - an event storming result from Introduction to Domain Driven Design. Through a number of hands-on programming exercises, we will implement a part of the domain model.

We will cover the following DDD patterns:

  • Aggregates and Aggregate Roots
  • Commands and Command Handlers
  • Read Models and Queries
  • Policies and Event Handling
  • Context Boundaries

Audience & prerequisites

Software developer and hands-on architects; this workshop is suitable both for more junior developers who want to grow and for more senior developers who’d like to sharpen their skills. Programming experience is required for this workshop.

The Introduction to Domain Driven Design course or equivalent knowledge is required.

Practical information

  • Duration: 1 or 2 days
  • Laptops required
  • This training is available as in-house training only.

Please contact us for registration