DEV Community

Tackling Complexity in the Heart of Domain-Driven Design

Vladik Khononov on April 19, 2017

Let’s do a little experiment: try to explain the gist of Domain-Driven Design to someone who has no clue about it. This, especially doing it succ...
Collapse
 
larrytalley profile image
larrytalley

Excellent discussion, thanks much. I've had the pleasure of taking a DDD class from Eric and now our team is poised to try to apply DDD in a micro-services architecture arena. (Well, maybe not micro-services, but at least mini-services.)

Your article helps me focus on the aspects of DDD that are at the heart of DDD. And I need that focus because I can't grasp all of it at once. But with appropriate focus I can start to realize the value of DDD without applying every concept everywhere.

Collapse
 
vladikk profile image
Vladik Khononov

Thanks a lot for the kind words!

Collapse
 
stravid profile image
David Strauß

After stumbling upon DDD I'm currently trying to practice and breath my newfound knowledge. In my case I need to build things to see how it goes and to self-evaluate my knowledge base. And to be honest in the beginning it was hard to accept for me that there is no single way to implement .

I attribute that to "being used to work with a framework" (Ruby on Rails). I literally have to relearn to think about how to structure my software and not do it the framework schema. I guess many others are confronted with these kind of frustrations.

Thankfully I did not attribute my failings to produce source code to DDD but rediscovered software engineering. Looking back I think it's good that there were not so many code examples. It forced me to think and figure out myself "What do I need to implement the bounded context?".

So I do agree with you that there is enormous value in the non-tactical part of DDD. As a beginner it's just hard to see and except.

Collapse
 
caiorcferreira profile image
Caio Ferreira

Great post! And I loved your post on CQRS too. A had started to read The Blue Book and thinking in the ways I could apply the knowlogde from the book to a personal project me and my friends are begginning, and, UAU, I couldn't get my head around it. So, as I read your post, I become to understand better how I can actually use DDD and why.
I just wanted to ask if you could share your thoughts in Bounded Contexts and Context Map. This would greatly help many people (and me) to understand the deep tricks of the Ubiquitous Language and Domain Modeling.

Collapse
 
vladikk profile image
Vladik Khononov

Hi Caio, thank you so much for the kind words!

IMHO, Vaughn Vernon's Implementing Domain-Driven Design is a much "friendlier" option to start learning DDD. It is better structured, contains new topics, like Domain Events, Event Sourcing, CQRS, and most importantly, it has a lot of good examples. If you are not interested in examples, and just need to get your head around DDD as fast as possible, then Vaughn's "Domain-Driven Design Distilled" is a great book as well.

Regarding Bounded Contexts, I'm currently preparing the presentation that I will do at Explore DDD conference. It will cover the various strategies that we've tried at our company, the results, and some heuristics / rules of thumb on choosing the boundaries. I will definitely blog about the subject after the conference.

I also recommend watching Mathias's session from DDDX 2017 - "Emergent boundaries" skillsmatter.com/skillscasts/9847-...