目录
- 一、统一语言的作用阐述
- 二、统一语言与领域分析
- 2.1、统一的领域术语
- 2.2、统一的领域行为描述
- 三、统一语言落地执行
一、统一语言的作用阐述
【统一语言】,怎么强调都不为过!!
日常沟通中,时常会出现这么一幕:A同学一再和B同学解释说明我的意思是,我说的是,你说的是不是,你是这个意思吗…
在这种一直不在同一频道上或没有达成这种一致性的沟通中,那就是鸡同鸭讲,毫无沟通效率,往往还有可能造成很多误解和伤害o( ̄︶ ̄)o(你咋这么不好沟通,你咋这么不理解我的意思呢)~
使用了统一语言,可以帮助我们将业务领域专家、产品经理和研发拉到同一个维度空间进行沟通讨论。
在领域驱动设计中,无论是在战略阶段还是战术阶段,我们都能看到统一语言的身影:
- 它是战略设计阶段的重要模式,可以帮助我们梳理【业务知识】,以此来 识别【问题域】
- 在识别限界上下文时,是统一语言提出了【概念边界】,才给了我们判断限界上下文边界的标准
领域模型所要表达的业务概念更是要遵守统一语言,保证分析模型、设计模型与实现模型的一致性。统一语言是领域模型的核心参考!
因此,当我们想要获得领域分析模型时,首先需要参考的就是统一语言,它可以有效地帮助我们识别出整个模型中最核心也是最基本的显式【领域概念】。
二、统一语言与领域分析
统一语言主要体现在两个方面:统一的领域术语 和 统一的领域行为描述
2.1、统一的领域术语
在领域建模过程中,我们需要建立维护一个大家一致认可的术语表。术语表是领域建模的关键,是模型的重要参考规范,能够真实地反应出模型的领域意义:
- 术语表中需要包括整个团队精炼出来的【术语概念】,以及对该术语的清晰明白的解释说明。若有可能,可以为难以理解的术语提供具体的案例
- 需给出对应的英文术语翻译(尤其简称缩写),以便于后续代码开发,在代码中统一语言(就直接为编码实现提供了类、方法、属性等命名的依据,保证代码自身就能直观表达领域含义,提高代码可读性——DDD非常强调代码即文档)
2.2、统一的领域行为描述
领域行为描述可以视为对领域术语甄别发现的一种延伸。领域行为是对业务过程的描述,相对于领域术语而言,它体现了更加完整的业务需求以及复杂的业务规则。
在描述领域行为时,需要满足以下要求:
- 从领域的角度而非实现角度描述领域行为
- 若涉及到领域术语,必须遵循术语表的规范
- 强调动词的精确性,符合业务行为在该领域的合理性
- 要突出与领域行为有关的领域概念
三、统一语言落地执行
然而,所谓“统一语言”,并非某一种固定格式的交付物,而是领域驱动设计过程中无形的最高设计准绳。
为了保证分析与设计的质量,我们需要不停地追问:
- 我们的沟通讨论符合统一语言吗(同一语境下)?
- 我们设计的模型符合统一语言吗?
- 限界上下文的领域概念遵循统一语言吗?
- 类名与方法名满足统一语言的规范吗?
- 一旦发生变更,我们及时地对其进行更新了吗?(术语表更新,代码命名重构)
磨刀不误砍柴工,多花一些时间去打磨统一语言,并非时间的浪费,相反还能改进领域模型乃至编码实现的质量。
重视统一语言,就能促成彼此正面影响的良性循环;否则领域模型与代码会因为沟通不明而泥足深陷,就真是得不偿失了。
欢迎关注: 梦语路
参考:
- 张逸《领域驱动设计实践-战略篇》
- 网络资料理解再整理