📘 Book Review: Domain-Driven Design
The “Blue Book” is a classic among software developers. What makes it so renowned? Is it that good? Find out in this review.
The “Blue Book” is a classic among software developers. What makes it so renowned? Is it that good? Find out in this review.
📜 An Absolute Classic
I will never write code or look at it the same way again after reading this book.
There, I said it.
This book has been embraced by amazing practitioners of the craft since its release in 2003. Rightfully so in my opinion. It even sparked entire communities, conferences, and more books dedicated to just this subject!
I learned an incredible amount from this book, and you can too. Let’s see what it’s about.
👏 Why the Book is a Must-read
Domain-Driven Design is invaluable for any developer who wants to improve at his craft. The book provides an incredibly complete view of the realm of software development.
It delves into principles on the level of code, design, language, and how this all fits into a much bigger context. When you apply these principles, it makes all the difference in software development.
The core takeaways are:
The importance of understanding the domain
Solving domain problems in terms of the domain
Having a shared model and language between the business and developers
Vocabulary and patterns for expressing the model in software
The need to constantly improve the model as you learn
Strategies for applying and upholding these principles in larger contexts
As you can see, the subjects the book touches on are incredibly broad. It works though. I’ve not encountered a book that provides such an integral perspective on software development. It unifies a lot of universally applicable knowledge in one title.
Wherever you stand in your career, you will come away learning a great deal after reading this intimidating tome.
🤔 Some Considerations…
There are some things I see as downsides to this overall great title.
It’s a tough read. The first time you’ll encounter this book it will most likely be an intimidating experience. First off, it is a very sizable book. Beyond sheer size, it is also notoriously dense. Don’t expect this book to be a walk in the park!
Could use more examples. A lot of concepts in this book are very abstract. Generally, Eric Evans does a great job explaining what they mean, but I would have liked to see more concrete examples. For instance, in explaining some patterns, code samples would have made the ideas more tangible and simpler to understand. This would make it easier to apply the theory in practice.
🙋 Who is it for?
If you are a developer and interested in improving your software designing skills, this is a great book to read. I would go as far as to call it essential.
Any developer can (and should) read the first part of this book. This delves deeper into the need for a Ubiquitous Language, hammering out a sound model and cooperating with Domain Experts. These skills are crucial and often overlooked.
The remaining three parts are better suited to developers with a few years of experience. These parts span the Building Blocks for a Model-Driven Design, Refactoring Towards Deeper Insight and Strategic Design. Though valuable in their own right, this is also where the book can be a little abstract and a broad frame of reference is helpful.
⭐ The Verdict
Want to developer great, valuable software? Read this book, period.
Yes, it is dense. Yes, it is fuzzy at times. Domain-Driven Design is also a treasure trove of valuable lessons for the craftsman who wants to step up his/her Software Design game.
Final score: 9 out of 10. Don’t miss out on this title.
What are your thoughts on Domain-Driven Design? Let us know in the comments below!
Originally published at https://www.codecraftr.nl on October 27, 2021.