Domain Driven Design and naming

Ubiquitous Language

A big idea in Domain Driven Design (DDD) is ubiquitous language. The books have entire chapters on the topic, but I’ll try to summarise it and it’s benefits below.

Definition: A shared language for use by domain experts and developers, that is used to express your business' scenarios or model.

Some Benefits

  • Reduces cognitive load, simplifies communication across stake holders from all areas (Domain Experts & developers). This is a case of reducing Extraneous (irrelevant) Load, because fewer ‘translations’ & clarifications need to be made when communicating.
  • Eliminates inaccuracies and contradictions when communicating in cross-functional teams (very common way of operating).

Actionable items

  • Try and name your functions and variables using ubiquitous language.
  • Even if you’re not in an environment that explicitly uses DDD, you can introduce Ubiquitous Language:
    • Start a shared document, with the language you commonly use on your project, to make sure everyone’s on the same page

Related reading