Disappointing
Mar. 22nd, 2024 11:48 amBook Review: Learning Domain-Driven Design, by Vlad Khononov
A few years ago I had a fairly indifferent reaction to the original DDD book; a colleague who is more enthusiastic has been passing a copy of this around the team. It's been a tricky few months at work, with some technical and team changes that I don't like, so I inevitably approached this with some scepticism, whilst trying to keep an open mind. There are some things to agree with, like ubiquitous language, but even that is challenging in practice, in a large organisation with legacy of any size. Bounded contexts and aggregates ought to make sense, but the flexibility about granularity starts to weaken the argument, because it opens scope for disagreement. I found the argument about layered architecture versus ports and adapters particularly weak. To me it's presented confrontationally, and the exposition of the ports and adapters idea is thin, unclear, and lacking good examples. Microservice Patterns offers a better discussion on this area in my opinion. Ports and adapters still require layers in my view, it's not an either/or. The discussions on CQRS and event-sourcing were clearer; the similarly named, but totally different, practice of event storming, seemed full of contradictions and unlikely to lead to consensus. I'm afraid, with the exception of event-sourcing, it didn't really move the dial for me.
A few years ago I had a fairly indifferent reaction to the original DDD book; a colleague who is more enthusiastic has been passing a copy of this around the team. It's been a tricky few months at work, with some technical and team changes that I don't like, so I inevitably approached this with some scepticism, whilst trying to keep an open mind. There are some things to agree with, like ubiquitous language, but even that is challenging in practice, in a large organisation with legacy of any size. Bounded contexts and aggregates ought to make sense, but the flexibility about granularity starts to weaken the argument, because it opens scope for disagreement. I found the argument about layered architecture versus ports and adapters particularly weak. To me it's presented confrontationally, and the exposition of the ports and adapters idea is thin, unclear, and lacking good examples. Microservice Patterns offers a better discussion on this area in my opinion. Ports and adapters still require layers in my view, it's not an either/or. The discussions on CQRS and event-sourcing were clearer; the similarly named, but totally different, practice of event storming, seemed full of contradictions and unlikely to lead to consensus. I'm afraid, with the exception of event-sourcing, it didn't really move the dial for me.