通用语言是什么
通用语言是在限界上下文内,业务人员与开发人员使用同一套术语描述同一件事:代码类名、接口字段、需求文档与口头讨论保持一致,减少翻译损耗与理解偏差。它是领域驱动设计的核心实践之一,通过持续使用而非一次编写来发挥作用。当同一个词在不同人口中含义不同,说明存在上下文边界或术语歧义,需要当场裁决而不是默认兼容。
基本信息
| 来源 | Eric Evans《领域驱动设计》中的核心实践 |
|---|---|
| 载体 | 术语表、代码命名、需求文档、接口字段、测试用例描述 |
| 判别信号 | 同一个词在不同人嘴里含义不同,说明存在边界或歧义 |
| 维护责任 | 每个术语指定维护人,归属明确的限界上下文 |
| 变更影响 | 术语调整应同步代码、文档与接口,避免出现同物多名 |
落地做法
收集术语在各处的实际叫法,由业务与开发共同定义唯一表述;每条记录定义、别名、禁用叫法、归属上下文与维护人,并同步修改代码命名、接口字段与文档。术语冲突回到具体业务场景中裁决,而不是投票式妥协。评审时读一遍术语表,往往能提前发现大量理解偏差。
术语表字段
| 字段 | 作用 | 示例 |
|---|---|---|
| 标准术语 | 唯一权威叫法 | 订单 |
| 定义 | 一句话业务含义 | 客户提交、包含明细与金额的购买请求 |
| 别名 | 允许的口头叫法 | 单子、单据 |
| 禁用叫法 | 容易混淆需淘汰的说法 | 交易(与支付流水冲突) |
| 归属上下文 | 术语生效的边界 | 交易上下文 |
| 维护人 | 负责后续变更确认 | 订单域负责人 |
术语表要记录“别名与禁用叫法”,例如“客户”与“用户”在系统里是不是同一个概念;不记录禁用叫法,沟通中仍会不断出现歧义。
只写术语表不改代码与文档,术语表会变成无人使用的摆设,代码里的旧命名继续传播错误理解。