Posts Tagged ‘book review’

Eric Evans: Domain Driven Design

October 9, 2009 Leave a comment

Domain-Driven Design: Tackling Complexity in the Heart of Software

Author : Eric J. EvansEvans - DDD
Pages: 560
Publisher: Addison-Wesley Longman, Amsterdam; Edition: 1. A. (4. September 2003)
Language: English
ISBN-10: 0321125215
ISBN-13: 978-0321125217

Personal Summary:

Eric Evans introduces a new approach to Software Modeling: Domain Driven Design (DDD). Just as the title says it deals with techniques and best practices for managing domain complexity. At the core of it lies the concept of “unavoidable complexity” that is, the complexity of the domain. It is all about creating a model of your domain in software that captures all the knowledge necessary to solve the problems the software is intended to.

Evans starts with describing the development process necessary to make this goal achievable. Knowledge Crunching is all about invoking the Domain Experts and making the Developers understand the Domain. A Ubiquitos Language with a sharp description of all its elements must evolve, to make communication efficient and less prone to errors. An agile, feedback driven process is necessary for Binding Model and Implementation that is, feeding back insight gained during model implementation into the modeling process.

This takes us to the next important concept: Insight. Insight describes the process at a human level. It is the core challenge of building software that is intended to solve real-world problems. Software Developers mustn’t be specialists – they need to be generalists: engineers. A good developer bridges the gap between technology and domain because he is an expert in both. Eric Evans acknowledges it is impossible to be an expert in every domain without having experience with it.He therfore appreciates Insight and advocates refining the model when new Insight is gained. Through continuous Knowledge Crunching and Distillation a Deep Model eventually emerges.

A process like this requires proactive structuring of the code base to accomodate change – Supple Design. Something which I think is a very essential concept. It is necessary for a Test Driven Design Process or in areas of the domain that are likely to evolve in the future. For this purpose he describes a set of patterns that help abstracting domain object responsibilities into explicit concepts, which is another core tenet of Supple Design: Making Implicit Concepts Explicit. This applies not only to the structure of the code base but also to the concepts of the domain.

Opinion and Conclusion:

I think this book is a must read for everyone that considers software development to be a craft. The parallels to engineering are astonishing. Eric Evans has a very explicit style of writing, which accounts a lot to the value of this book. The sharp definitions and clear distinctions make it possible to convey a lot of information in a very dense manner. I wonder if Evans is a mathematician 🙂

Links and Accompanying Books:

Categories: Book Reviews Tags: ,

Introducing the ‘My Bookshelf’ Series

October 7, 2009 Leave a comment

In the following weeks I want to write reviews about the programming and technology related books sitting on my bookshelf. You can find an up to date list of these books here, where I will also link the corresponding Blog Post.

There are several goals I try to accomplish with this series:

  • Recapitulate gained knowledge, focusing on the most crucial aspects
  • Keeping track of what books I do have but didn’t have time to read yet
  • A Wishlist of Books I plan to buy, mostly focused on those areas I want to enrich my knowledge
  • Provide a ‘get started on a topic’ list for others

I think the format will be something like:

  • Title, Author, Pages, ISBN, Picture, Amazon link
  • Short Summary of Content
  • Most important thing i learned
  • What did I like? What not?
  • Conclusion, good accompanying books
Categories: Book Reviews Tags:
%d bloggers like this: