Markdown Editor

Ubiquitous Language Glossary Template (DDD)

Glossary of domain terms per bounded context with synonyms to avoid, examples, code names, owners and change rules

Архітектура та системний дизайнКомпактнийDomain-Driven Design (Evans)ubiquitouslanguage

Як використовувати: Use it for each bounded context once domain experts and developers start using shared terms. Fill the ten most confused terms first, with examples. The main pitfall is writing database field descriptions instead of definitions experts would sign off.

Перегляд

Ubiquitous Language: [Bounded context name]

Glossary of the shared language used by domain experts and developers inside one bounded context, with the rules for changing it. Based on the ubiquitous language concept of Domain-Driven Design (Eric Evans). Replace every [bracketed] value and every row marked Example.

FieldValue
Bounded context[Billing]
Language owner[@domain-expert] and [@tech-lead]
Version[0.1]
Last reviewedYYYY-MM-DD

1. Terms

TermDefinitionSynonyms to avoidExampleCode nameOwner
Example: InvoiceA legal request for payment issued to a customer for one billing periodBill, statementInvoice INV-2026-0412 for MarchInvoice@billing-expert
Example: Billing periodThe calendar month for which usage is chargedCycle, term1 to 31 MarchBillingPeriod@billing-expert
Example: Credit noteA document that reduces the amount owed on an issued invoice; invoices are never editedRefund, correctionCredit note for a duplicate charge of 49.00CreditNote@finance-lead
Example: AccountThe paying customer entity that receives invoices; not a loginUser, customer loginAccount ACC-3391 with three usersBillingAccount@billing-expert
Example: DunningThe sequence of reminders after an invoice is overdueChasing, collectionsReminder on day 7, 14 and 30DunningProcess@finance-lead
[Term][Definition][Words not to use][Concrete example][Class or module][@owner]

2. Same word, other contexts

TermMeaning hereMeaning in other contextOther context
Example: AccountPaying entityA person's loginIdentity
Example: ProductA priced plan line on an invoiceA feature bundle shown in the shopCatalogue
[Term][Here][There][Context]

3. Rules for evolving the language

  1. A new term is added when domain experts use it repeatedly and it has no existing equivalent. It is proposed by pull request to this file.
  2. Each change is approved by the language owner and one domain expert.
  3. A renamed term is renamed in code, tests, APIs (with deprecation) and documentation within [two sprints]. The old term moves to "Synonyms to avoid".
  4. Terms are never deleted silently; a retired term stays with the note "Retired YYYY-MM-DD, replaced by [term]".
  5. Disagreement about a definition is a signal of a hidden boundary. Raise it at the next modelling session instead of averaging the meanings.
  6. The glossary is reviewed every [quarter] against recent tickets and code.

4. Change log

DateChangeApproved by
YYYY-MM-DDExample: Renamed "Refund" to "Credit note"@finance-lead
YYYY-MM-DD[Change][@name]

Standard and licence note

Based on the ubiquitous language concept from Domain-Driven Design (Eric Evans, 2003). All text and examples are original to this collection. Template licence: MIT.

Схожі шаблони