Archive For The “DDD” Category

DDD: Questions around ubiquitous language

What happens in situations where the developers and the business don’t agree on the terminology — the Ubiquitous Language — of a system? This post was inspired by a blog post by Greg Young, which was in turn inspired by a question on the DDD mailing list. Here are some of my experiences where this […]

Read more »

DDD eXchange 2010 highlights

On Friday I attended DDD eXchange 2010, a one-day software conference here in London on Domain Driven Design. This years conference focused on two themes — architectural innovation and process — and I saw talks by Eric Evans, Udi Dahan, Greg Young, Ian Cooper and Gojko Azdic discussing their various aspects. Here are some of […]

Read more »

A dangerous DDD misconception: one-sided ubiquitous language

Lately, I’ve seen a disturbing misconception about DDD crop up a couple of times in online and offline discussions. Here it is: Ubiquitous language is sourced exclusively from the business. The developer side has no input, and must adopt whatever vocabulary they are given. This is only true in situations where your project team is […]

Read more »

Guard Methods

In defensive programming, guard clauses are used to protect your methods from invalid parameters. In design by contract, guard clauses are known as preconditions, and in domain driven design, we use them to protect invariants — unbreakable rules that form assumptions about our model: Unfortunately, in examples like this, the true intention of the method […]

Read more »

Label your services!

Here’s a code snippet showing a little habit of mine — something I do to all my domain and application services: What’s in these base interfaces? Nothing. They are just labels, used to help make make object roles explicit: Why is this a good idea? It helps makes implicit concepts — e.g. this is a […]

Read more »