

#Domain driven design summary software#
When developing software it is important that the domain experts and the developers would create a language of expressions and common phrases that define the system's model and interactions.įor example, in a hotel booking app, the term a Booking would be an agreed upon term that is both understandable for both the experts and the devs, whenever any of them needs to exchange a piece of information about booking manipulation, they would use the term a booking, also when a user books a booking we use the term books to refer to this activity. The Language: Languages are some set of characters/phrases arranged together to define a meaning that is understandable by someone or something that can parse those phrases. They are the ones who carry the knowledge which defines the problem and what the output of the software should be in order to be considered a complete solution, and they can define acceptance tests for this software Ubiquitous Language For example, if we were making a software for medical information, then the doctors would be our domain experts, if we were making a software for hotel reservations, the hotel managers would be the experts of this domain.

Those are the individuals who have a great deal of familiarity with the domain which the software is trying to solve a problem for.

