REVIEW - Domain-driven Design - Tackling Complexity in the Heart of Software


Domain-driven Design

Tackling Complexity in the Heart of Software


Eric Evans



Addison-Wesley Professional (2004)




Huw Lloyd


April 2004



a unified a collection of recognised software pattern descriptions

Domain-driven design is concerned with aligning the core of software systems with the domain they represent. To this end the software is used to express the domain model. This book is a unified a collection of recognised software pattern descriptions, supported with UML sketches and java code snippets, suited to communicate the major concerns of iterative domain design.

'Refactoring through deeper insight' is a theme that permeates the book, an agile approach advocated by Evans, to manage the complexity of software by a continuous process of discovery of domain knowledge and its representation. Through domain-driven design Evans' advocates iterative design and understanding. When a better understanding is achieved he encourages the developers to reflect that understanding in the software's design by refactoring.

The articulation of the patterns in conjunction with a good breakdown of key programming concepts provide an exceptionally clear presentation of software design with respect to alignment with the target domain. Each sub-topic is relevant, whilst the flow and structure of the whole book is maintained from building blocks through to large-scale structure.

I was rather surprised at the scarcity of references. Although the author refers to many influences 'in the air' during the incubation of this material, I would have expected to see reference to seminal works such as Jackson's 'Problem Frames' and Coplien's 'Multi-Paradigm Design for C++'. As it stands only a handful of books are mentioned and particular bias is given towards Martin Fowler who provides a forward for the book.

Irrespective of whether you feel agile software development is for you, I highly recommend this book as a source for insight into class, module and system design.

Book cover image courtesy of Open Library.

Your Privacy

By clicking "Accept Non-Essential Cookies" you agree ACCU can store non-essential cookies on your device and disclose information in accordance with our Privacy Policy and Cookie Policy.

Current Setting: Non-Essential Cookies REJECTED

By clicking "Include Third Party Content" you agree ACCU can forward your IP address to third-party sites (such as YouTube) to enhance the information presented on this site, and that third-party sites may store cookies on your device.

Current Setting: Third Party Content EXCLUDED

Settings can be changed at any time from the Cookie Policy page.