ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Title:
Domain-Driven Design: Tackling Complexity...
Author:
Eric Evans
ISBN:
0-321-12521-5
Publisher:
Addison-Wesley
Pages:
528pp
Price:
£37-99
Reviewer:
Huw Lloyd
Subject:
design
Appeared in:
16-2
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.