# 通用语言（Ubiquitous Language）

URL: https://caijiao.org/ddd/chapter1/ubiquitous-language
Source: docs/ddd/chapter1/ubiquitous-language.md
Description: 了解领域驱动设计中通用语言的概念及其如何帮助开发团队与业务人员保持一致。

在领域驱动设计（DDD）中，**通用语言（Ubiquitous Language）** 是整个团队（包括开发人员、领域专家、产品经理等）用来描述领域模型的共享语言。它确保了所有人在讨论问题时，使用的词汇和定义是统一的，从而减少了沟通障碍和误解。

## 为什么通用语言如此关键？

### 1. 降低沟通成本

开发人员和业务专家往往使用不同的语言和术语，导致沟通障碍。通过引入通用语言，团队中的每个人都能使用相同的词汇描述业务概念，从而使沟通更加高效。

### 2. 保持领域模型一致性

通用语言确保了领域模型在开发过程中的持续一致性。无论是代码实现，还是业务分析，所有的讨论和决策都围绕着统一的语言进行。

### 3. 促进跨团队协作

对于涉及多个团队的项目，通用语言帮助不同团队在技术和业务的交接过程中保持一致。无论是前端开发、后端开发，还是产品经理和业务分析师，通用语言都能确保大家对系统的理解保持一致。

## 如何在开发中保持通用语言一致性？

### 1. 与领域专家合作

通用语言的形成是与领域专家紧密合作的结果。开发团队应该定期与业务人员、产品经理等领域专家沟通，以确保理解业务需求并将其转化为一致的领域语言。

### 2. 代码与文档同步

通用语言不仅仅体现在会议讨论中，它还应该体现在代码中。例如，领域类名、方法名等应该使用业务领域的术语，这样可以保证代码与业务语言的对齐。

### 3. 持续反馈与更新

随着系统演化，业务需求可能会发生变化，通用语言也需要随着变化而不断更新。因此，开发团队需要保持灵活性，及时调整语言，并确保所有相关人员同步。

### 4. 维护领域词汇表

为确保团队对术语的共同理解，可以建立一个**领域词汇表**，其中包含领域内的关键术语及其定义。这个词汇表应在整个项目生命周期中作为参考，并在新的成员加入时帮助他们快速理解业务语言。

## 实践建议

- 定期与业务人员沟通，确保通用语言符合业务需求。
- 通过编写清晰的代码和文档，确保通用语言得以在开发过程中贯彻。
- 鼓励团队成员在开发过程中提出对领域语言的疑问，并对不明确的地方进行澄清。

通过一致的通用语言，开发团队能够更好地理解业务需求，从而构建出符合业务目标的高质量系统。
