New book in My Library - Domain-Driven Design: Tackling Complexity in the Heart of Software by Eric Evans

“The Blue Book” got on my library’s bookshelf. Domain-Driven Design is one of the best-sellers in the world of books about software engineering.,204,203,200_.jpg

I have heard about Domain-Driven Design (DDD) a while ago and did like this approach a lot. However, I need to admire that my understanding of DDD was kind of superficial before I read the full version of the book.

The cool thing with this reading was that I was engineering one product with quite interesting domain logic and some DDD patterns did a great job helping design and implement some kind of behaviour that could potentially lead to quite twisted solution. As a result, final design was sophisticated, but the code wasn’t twisted and it was quite clear how it works and what are the ways to extend it.

As I usually do, I’m going to share my impression I got from this reading.

What is the most important in systems we build? What is the core? Answer of this book is pretty simple - domain. One of the valid concerns that Eric Evans bring up is that we, unfortunately, often miss this factor. And that’s, probably, true - we get concentrated on frameworks, infrastructure, technical problems. Most talented engineers get concentrated on secondary things, while domain design and implementation is postponed to later stages. I need to admire I’m not an exceptional here - I did it lots of times. Was it right? Probably, no.

Now, considering that domain layer is the most important, how do we design it right? Being a software engineer mean not only be a professional in building software, but also requires a deep dive into domain of the system under design. There are zero chances to build successful design without diving deeply in the domain. Infrastructure and frameworks could be changed lots of times, but the domain layer will be there during all system lifecycle because it is the real core.

This books teaches you how to find, distill, protect and grow this core.

Long story short, I would recommend you to read that book, I’m sure you’ll enjoy it and will find a lot of interesting and useful.