jargon

Comparison

Domain modelvsUbiquitous language

Domain model

the rule about when an order can be cancelled lives on the order, and there is exactly one copy of it.

An object model of the business in which the objects carry both the data and the rules that operate on it. It pays off when the rules are genuinely complicated and interlocking, because each rule has one home and the model can be tested without any infrastructure. It costs more than a transaction script up front and is the wrong choice for an application whose logic is mostly validation and storage.

Full entry →

Ubiquitous language

the code says Account, the spec says Subscription, and in standup everyone says plan.

One vocabulary shared by the code, the documents and the people, so that a sentence in a meeting maps to a name in the repository. The cost of not having it is a tax on every conversation and every handover, paid in translation errors that surface as bugs. It is worth arguing about names for this reason and no other: the name is the interface between the code and the people who talk about it.

Full entry →

Related comparisons