If you want to know what DDD really is, complete these 8 steps. Of course, it will take a lot of practice and time to consider many designs to become a pro, but these 8 steps will start you off on the right track. Once you grasp DDD, then you should be ready to consider more advanced learning options.
Excerpt: “The book introduced the notion of classifying objects into Entities, Value Objects, and Service Objects – what I call the Evans Classification and identifying the concept of Aggregates. I found these filled an important gap in thinking about objects which eluded both programming languages and diagrammatic notations. A particularly important part of DDD is the notion of Strategic Design – how to organize large domains into a network of Bounded Contexts. Until that point, I’d not seen anyone tackle this issue in any compelling way.”
Register and take the first course we are offering for free on how to think about DDD when implementing it in the real world. This is a great way to begin to shape your thinking about the essence of DDD in the workplace.
There are many books on DDD. The first ever was "Domain-Driven Design" by Eric Evans. We call this the "Blue Book". All DDD books, listed on the learning page, belong in your reading list. However, today, if some of us were to start this journey again, we would start with Vladik Khononov's book "Learning Domain-Driven Design". We would not stop there, but Khononov has packaged a balanced starter diet of learning DDD principles and practicalities. While you learn some key design thinking, you also gain some effective wisdom. (See book access options bellow)
(Not free, yet, we are also an affiliate of Amazon.)
It may seem counter intuitive to make community connection a learning step. Our experience in the DDD community is that this is actually an essential part of the learning process. At minimum, connect with our national hub on LinkedIn. If there is a group in your area, please consider joining them. If there is not one, and you are willing to help this grow, consider signing up to lead a group.
About 5 minutes in length, you cannot get a faster way to really explain what a Bounded Context is this well. Know this, there will be some who have slightly different definitions, but this video gets you the essence of DDD Bounded Contexts enough for you to start forming your design thinking around carving up solutions based on the language of the Domain.
This is where design choices really start. Once you understand this idea, which has more to do with language of the business, rather than languages in code, then you start to understand the power of DDD at the macro level.
If you are here and you have done the work in the preceding steps, you might be excited to know how to really model using tactical building blocks. This video does a great job explaining how these blocks form domain models that align well to the world that this software serves.
Aggregates are a nebulous concept until you begin to see how they are used to assemble functionality. Aggregates provide a great protective layer for that functionality as well. The video plus these two chapters help you conceptualize how you would go about assembling these basic building blocks.
The rest of the book is very informative and insightful. Consider reading it to the end.
On the learning page, there are several more articles that shine a light on DDD.
Evans, Rayner, Tune, Lowe. Each of them have some wisdom to take before you head into a workshop.
Consider going to workshops on Domain-Driven Design where facilitators enable healthy practice. Eventstorming and many other topics are usually covered separately. All of them are valuable.