通用语言(Ubiquitous Language)
定义
通用语言
是领域驱动设计中连接业务与技术的核心概念,它是领域专家
和开发团队
共享的精确语言。
核心概念
领域专家
领域专家
是对特定业务领域有深入理解的人,例如:
- 汽车行业的工程师
- 金融领域的分析师
- 医疗系统的医生
他们的特点包括:
- 精通领域专有名词
- 深刻理解业务模型
- 能够解决领域核心问题
为什么需要通用语言?
传统开发流程的问题
null
信息失真案例
角色 | 理解 | 实际结果 |
---|---|---|
客户 | 燃油汽车 | 老年代步车 |
项目经理 | 标准汽车配置 | 简化版配置 |
开发人员 | 基本功能实现 | 功能不完整 |
如何建立通用语言
1. 术语对齐
java
// 领域模型示例
class Car {
Engine engine;
List<Tire> tires;
Wheel steeringWheel;
List<Seat> seats;
void start() { /*...*/ }
void stop() { /*...*/ }
void accelerate() { /*...*/ }
void brake() { /*...*/ }
void turn() { /*...*/ }
}
2. 实践原则
- 统一命名:业务术语与代码命名一致
- 持续精炼:在项目演进中不断优化语言
- 文档同步:保持文档与代码的一致性
- 双向验证:领域专家可验证业务逻辑正确性
价值
通过通用语言,我们可以:
- 消除业务与技术间的沟通障碍
- 确保需求准确传递
- 提高软件与业务需求的匹配度
- 降低维护成本