Modeling a problem domain with entities
In DDD, before any code is written, there must be lots of discussions between developers and domain experts—the people who have a deep understanding of their business, which may include other developers as well. Those discussions provide valuable information, acquired through a process called knowledge crunching, which is based on brainstorming between those developers and domain experts. That knowledge is then incorporated into the ubiquitous language. This language works as the lingua franca among everyone involved in the project and is present in documentation, day-to-day conversations, and – of course – in code.
When we deal with entities, we must always pay attention to how much we can learn about a business by just reading code. Even though just reading code may not be enough. That’s when techniques such as knowledge-crunching, where we speak with domain experts to learn more about a business, are instrumental...