Back
Eric Evans: Domain-Driven Design (Hardcover, 2004, Addison-Wesley)

"Eric Evans has written a fantastic book on how you can make the design of …

Wisdom on Every Page

The main reason I love this book is because it is so exceptionally well written. It makes you want to believe that rigorously focusing on the "domain" and its "ubiquitous language" will solve all your problems.

The book is divided into four parts.

  • Part I introduces the overall concepts of Domain-Driven Design, including the development of the "ubiquitous language"
  • Part II focuses on model design within an isolated ("bounded") context. It distinguishes entities, value objects, services, and modules, as well as aggregates, factories, and repositories to manage domain objects.
  • Part III emphasizes the incremental process of discovering the proper domain model, through a series of refactorings
  • Part IV steps out of the bounded context, and considers the case where interaction needs to take place between multiple of such bounded contexts, calling for, e.g., anti-corruption layers or common kernels.

The book is from 2003, and at places somewhat dated. But it has had such a tremendous influence, and it is so well written, that anyone seriously interested in software design must study this book.