Last updated on November 5th, 2022 at 07:35 pm

The following are my resources to learn and use DDD in my projects:

Articles and Blogs:

Domain Driven Design explained in 3 minutes

Domain Driven Design (DDD) generates lots of fantasies. For some it’s a set of concrete practices, for others it’s something that looks complicated & barely definable. Aggregate is probably the most commonly quoted term when people are talking about DDD.

The objective of this article is to cover the domain modeling and design from a practical stand-point on how one would go about taking a domain model and actually implementing it.

This blog post explores the fundamentals of DDD and gives you a path to follow. It will flag things about DDD that are worth thinking about, as well as things you can safely ignore. There’s some practical advice, and a few suggestions about significant milestones in your learning journey. You’ll also get a framework to build upon as you move towards mastery of DDD.

GitHub projects:

This is the starter project for the exercises in the “First Steps in Domain-Driven Design” course on O’Reilly

A repository implementing the example from the book Domain-Driven Design

Videos:

In this talk, Eric Evans presents a clear and practical introduction to DDD.

Eric Evans, the author of “Domain-Driven Design: Tackling Complexity in Software,” explains what the Bounded Contexts and why they are a central premise in DDD and how they help us to reason about a model and its language in a context, isolated from other models.

In this talk, Andrew Harmel-Law presents what are the three core aspects of DDD and how to use them to tackle “the complexity at the heart of (all) software”

“Great technologies, programming languages and tools are used to build software systems. That’s good and right and it’s also a lot of fun. To often we lose sight of the fact that the decisive factor for the success of our software is not the technology, but the domain. Have we implemented the requirements in a way that they will fit for the user? Have we structured our software in such a way that it can be extended by further functionalities without a lot of modification work? Can new developers quickly familiarize themselves with our software? Does our software scale if more and more users start using it? In this talk I will discuss the nine biggest misunderstandings that keep shifting our focus away from the domain to the technology, although we know that this is counterproductive.”

Books

This book, known as the Blue Book, provides a framework for making design decisions and a vocabulary for discussing domain design. It is a synthesis of widely accepted best practices along with the author’s own insights and experiences. This is not a book about specific technologies. It offers a systematic approach to domain-driven design, presenting an extensive set of design best practices, experience-based techniques, and fundamental principles that facilitate the development of software projects facing complex domains.

Building on Eric Evans’ seminal book, Vaughn Vernon couples guided approaches to implementation with modern architectures, highlighting the importance and value of focusing on the business domain while balancing technical considerations. This book provides practical DDD techniques through examples from familiar domains and how to use DDD within diverse architectures, including Hexagonal, SOA, Rest, CQRS, Event-Driven, and Fabric/Grid-Based.

Concise, readable, and actionable guide to the basics of DDD: What it is, what problems it solves, how it works, and how to quickly gain value from it. You will read core DDD techniques for building better software and focuses on what you need to know to get results.

If you are using another DDD resource that you find useful please add it in the comment below!

About the Author

My name is Adel Ghlamallah and I’m an architect and a java developer.

View Articles