Domain-driven Design
Eric Evans


Developing Common Language

  • Domain experts don’t understand the technical terms. Developers don’t understand domain experts’ terms.
  • The most important part in understanding and developing software is to develop common communication language between domain experts and developers.
  • Without common language, it’s hard for the developers team to communicate between each other, and it’s harder to communicate with the domain experts.
  • Domain experts and developers have no clue about each other’s jargons. Even people in the same domain vaguely describe their intentions.
  • We can not separate between the language and the domain model.
  • If the domain model has changed, the language will be changed accordingly, which will reflect upon the entire code structure from variables names to the functional behaviors up to its whole design.
  • Abstractly, the language used for communication is the domain model we are working within.
  • Eric’s terminology to solve this disconnection is develop a UBIQUITOUS LANGUAGE.
  • This language is the integration between domain experts and developers. It’s the common language both parts understand.
  • β€œ[The] changes to the language will be recognized as changes in the domain model”