Article

Domain Driven Design Distilled book review

August 28th, 2018

Amazon lists Domain Driven-Design Distilled, Implementing Domain-Driven Design and Domain-Driven Design Reference: Definitions and Pattern Summaries as Frequently bought together. The order of this list is of importance as "Distilled" is the first go-to book for the DDD novice.

Readability:

My personal DDD background started only recently when I joined Future500 some months ago. This book has helped me grasp the concepts I hear being used at work. After having been warned for the immense and comprehensive Red and Blue book I was positively surprised by how easy this book reads.

Do be warned as there is a lot of terminology in it and some of it is not thoroughly explained but that is how it's supposed to be. The text gives you pointers to where to go next and if you don't fully grasp a concept there is always a more extensive resource available (in either a Red or Blue cover).

A downside to the book for me was the 'Agile Project Management' domain used to describe DDD concepts. I am somewhat familiar with the methodology but by no means an expert and it did not make as much sense as another domain could have made. While I do understand the choice for this domain I don't think it's a viable candidate. Scrum introduces a bunch of new buzzwords that need explanation on it's own and distract from the goal; to provide an introduction to DDD.

Lessons learned:

  • Terminology: Bounded Context, Ubiquitous Language, Entities, Aggregates, Events and a whole lot more
  • It provides a clear picture of said terms in how they relate to each other and how they are used in the modelling of your software application (or during the implementation)

Conclusion:

It's an introduction for modelling and implementing a Domain-Driven Design architecture. After reading this you are not an DDD expert but it does open you up for talking to your team mates using the same (Ubiquitous) language. You should definitely reference the other works by Vernon or Eric Evans if there is some terminology that you do not understand.

Some resources:

Edwin Kortman

Software Developer