Repository navigation
Ubiquitous Language
A key aspect of domain-driven design is developing a common language that is shared by domain experts, engineers, and all others involved in the creation of software. Without this common language, the terminology of day-to-day discussions is disconnected from the terminology embedded in the code. Without a common language, various members of the team are left to translate from one person to the next, which incurs overhead and introduces the risk of misunderstanding. With some due diligence the domain model can serve as a backbone for an ubiquitous language within the team.
More specifically, domain-driven design directs that a ubiquitous language includes the names of the classes and the prominent operations those classes offer. It can also be enriched with rules that have been made explicit in the model, as well as various names of patterns the team commonly applies to the domain model.
A method is a medium or method of communication (hence the naming) in which to reach a target. Each target can have multiple methods, such as email or SMS. A single notification is tailored to one method.
A tag is a label that can optionally be applied to a target. A target can have no tags, or it can have many. Typically, a notification is sent to group of targets, with no concerns of which individual targets the notification will be sent to. With tags a notification can be sent an ever-changing group of targets by directing that notification at one or many tags.
A target is the recipient of a notification. Each target can be reached using one or more of its methods. Targets can receive a notification that is explicitly tailored to them, or a notification that is directed at one or more tags that the target is associated with.
A target notification is a notification that is explicitly tailored for one or more particular targets. In other words, it is a notification in which all recipients are explicitly known and enumerated. A target notification can be contrasted with a tag notification, which is a notification in which all recipients are not explicitly known, but share a common set of tags.
A tag notification is a notification that is directed towards a group of targets that share a common set of tags. There is no concern for which targets receive the notification. Instead, the only concern is that the targets that receive the notification share the common set of tags that the notification was tailored for.
- Domain
- Model
- Ubiquitous Language
- Modules (TBD)
- Up and Running
- Testing
- Content Negotiation
- Architecture (TBD)