Rating: 2.5 stars.
Overall, a really good introduction to Domain Driven Development. However, the author spends too much time selling his other book on domain driven development. If the writer would have only mentioned his other book once this could have been a 4 star book. If the writer could have woven other references in besides his own, it would have been a 5 star book.
A Great Spot For Beginners
The one thing this book does really well, is give the beginner a strong understanding of terminology used in Domain Driven Development. The reader will leave the book with a solid introductory understanding. The book will also work as a good desk reference as the beginner dives deeper into the topic. Lastly the book is not very thick and did not take long to read.
Chapter 1. DDD for Me
Here Vernon give an introductory why this book. It is pretty much what you would expect from any tech book.
Chapter 2. Strategic Design with Bounded Contexts and the Ubiquitous Language
This chapter starts you off with the fundamentals that everything else is based on. Reading this chapter alone made many blogs and articles on Domain Driven Design accessible. It also sets you up with an idea how to create a “Bounded Context”.
Chapter 3. Strategic Design with Subdomains
This answers the question of how do you parse complex domains, or legacy applications in your domain.
Chapter 4. Strategic Design with Context Mapping
I needed to read this chapter twice because the ideas are deep. It covers a lot of ground and was by far the hardest chapter in the book. It was made even more opaque by reference to specific technologies that weighed the ideas down rather then shining light on them. It is worth noting also, that even though the technologies are still relevant, it made the whole text feel dated.
Chapter 5. Tactical Design with Aggregates
Aggregates are a little confusing of an idea, but once you wrap your head around the idea the whole chapter becomes an easy read.
Chapter 6. Tactical Design with Domain Events
This chapter seemed to contradict earlier chapters. Vernon does a good job of defining domain events and why you would use them. The contradiction comes from the fact in earlier chapters he warns of prematurely deciding on technology but then right away recommends a technology to facilitate these aspects of the design.
Chapter 7. Acceleration and Management Tools
The first part of this chapter, on Event Storming, was pure gold. The rest… Well I would not bother reading those pages. They seemed to a rambling of half understood ideas.
What was Wrong
The very first thing is the amount of times Vernon recommends his other book kept me thinking “Did I waist my money buying this book?” And “Why did I pay for an advertisement for his other book?” Simply stated it was distracting at best and annoying at worst.
That being said, I would not have minded in the least if every time he recommended his book, he also recommended other places to learn more. I would have loved that. This book would have been a spring board to a much deeper learning experience.
All in all, I have a problem recommending this book just because of how often Vernon advertises himself. It also turned me off of buying other books by him. It is a shame, because I feel this book could be the book to launch someone into Domain Driven Design.