首页/开发/系统分析与架构设计速查/通用语言(Ubiquitous Language)
需求分析与建模61 条

通用语言(Ubiquitous Language)

在限界上下文内,业务人员与开发人员使用同一套术语,代码类名、接口字段与文档用词保持一致,减少翻译损耗与理解偏差。

通用语言是什么

通用语言是在限界上下文内,业务人员与开发人员使用同一套术语描述同一件事:代码类名、接口字段、需求文档与口头讨论保持一致,减少翻译损耗与理解偏差。它是领域驱动设计的核心实践之一,通过持续使用而非一次编写来发挥作用。当同一个词在不同人口中含义不同,说明存在上下文边界或术语歧义,需要当场裁决而不是默认兼容。

基本信息

来源Eric Evans《领域驱动设计》中的核心实践
载体术语表、代码命名、需求文档、接口字段、测试用例描述
判别信号同一个词在不同人嘴里含义不同,说明存在边界或歧义
维护责任每个术语指定维护人,归属明确的限界上下文
变更影响术语调整应同步代码、文档与接口,避免出现同物多名

落地做法

收集术语在各处的实际叫法,由业务与开发共同定义唯一表述;每条记录定义、别名、禁用叫法、归属上下文与维护人,并同步修改代码命名、接口字段与文档。术语冲突回到具体业务场景中裁决,而不是投票式妥协。评审时读一遍术语表,往往能提前发现大量理解偏差。

术语表字段

字段作用示例
标准术语唯一权威叫法订单
定义一句话业务含义客户提交、包含明细与金额的购买请求
别名允许的口头叫法单子、单据
禁用叫法容易混淆需淘汰的说法交易(与支付流水冲突)
归属上下文术语生效的边界交易上下文
维护人负责后续变更确认订单域负责人
术语表要记录“别名与禁用叫法”,例如“客户”与“用户”在系统里是不是同一个概念;不记录禁用叫法,沟通中仍会不断出现歧义。
只写术语表不改代码与文档,术语表会变成无人使用的摆设,代码里的旧命名继续传播错误理解。

易错点

  • 术语表建完就归档,代码与文档继续各用各的叫法,翻译损耗依然存在
  • 追求全公司统一术语,忽视限界上下文边界,只在边界内成立的术语被强行通用化
  • 术语冲突靠投票或折中解决,没有回到具体业务场景裁决,定义仍然模糊
  • 不记录禁用叫法,已被淘汰的说法继续在新人之间流传
  • 术语变更未同步接口字段,前后端与上游系统对同一字段理解不同

数据来源与参考

  • Eric Evans《Domain-Driven Design》(Addison-Wesley, 2003)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌