Article summaries

What is Domain-Driven Design?

Over the last decade or two, a philosophy has developed as an undercurrent in the object community. The premise of domain-driven design is two-fold:

  • For most software projects, the primary focus should be on the domain and domain logic; and
  • Complex domain designs should be based on a model.

Software Is (Not) Like That

by Eric Evans We have been working too hard to stretch our conceptions of other fields to fit our own. It is time to let software be software.
by Eric Evans
February 4, 2004

We can't quite think about a completely new thing, so we make analogies to activities that we think we understand better. Software, being only half a century old, has been laden with the baggage of many established professions. Metaphorical thinking is so powerful that an inapt or misapplied analogy can be devastating.

Software development is like manufacturing.

“An Introduction to Domain Driven Design" by Dan Haywood

In this article, published on methodsandtools.com, Dan Haywood introduces DDD principles and patterns. A good read if you are just starting out with DDD.
In this article, published on methodsandtools.com, Dan Haywood introduces DDD principles and patterns. A good read if you are just starting out with DDD.
Read the article

Effective Aggregate Design by Vaughn Vernon

Aggregates are one of the more challenging aspects of tactical modeling. In this three-part series, Vaughn Vernon walks through some common design pitfalls, discusses the pros and cons of various aggregate modeling choices, and provides rules of thumb to guide modeling of aggregates, spelling out the current consensus view of DDD leaders on the style of aggregates that help place development on a more solid footing.

Aggregates are one of the more challenging aspects of tactical modeling. Developers often end up with large clusters of objects that do not give good performance and scalability.