202511151211 Ubiquitous language
A 202511151148 Domain model is a set of concepts built up in the heads of people on the project, with terms and relationships that reflect domain insight.1
In order to effectively collaborate in a domain, we must share a language for communicating about this mental model. If we put effort into sharing this language everywhere with everyone on the project, we can converge on a single mental model that we all have instead of multiple fragmented models. Having a shared model means there’s less or no translation between people’s mental models and words, resulting in less miscommunication and misunderstanding.
For a ubiquitous language to be effective, it needs to truly be ubiquitous. You can’t just use it in a few technical documents. It needs to be the way that all the people involved on the project speak, write, and even think about the domain model. This reduces the lossy-ness of our communication and ensures that all our models are in sync as the domain evolves.
-
Evans, E. (2003). Domain-driven design: Tackling complexity in the heart of software. Addison-Wesley. ↩
- 202511120846 Domain Driven Design
- 202511160842 Ingredients of effective modeling
- 202512241101 Model Driven Design
Linked from this note