DDD:统一语言

一、统一语言的作用阐述

【统一语言】,怎么强调都不为过!!

日常沟通中,时常会出现这么一幕:A同学一再和B同学解释说明我的意思是,我说的是,你说的是不是,你是这个意思吗…

在这种一直不在同一频道上或没有达成这种一致性的沟通中,那就是鸡同鸭讲,毫无沟通效率,往往还有可能造成很多误解和伤害o( ̄︶ ̄)o(你咋这么不好沟通,你咋这么不理解我的意思呢)~

使用了统一语言,可以帮助我们将业务领域专家、产品经理和研发拉到同一个维度空间进行沟通讨论。

在领域驱动设计中,无论是在战略阶段还是战术阶段,我们都能看到统一语言的身影:

  • 它是战略设计阶段的重要模式,可以帮助我们梳理【业务知识】,以此来 识别【问题域】
  • 在识别限界上下文时,是统一语言提出了【概念边界】,才给了我们判断限界上下文边界的标准

领域模型所要表达的业务概念更是要遵守统一语言,保证分析模型、设计模型与实现模型的一致性。统一语言是领域模型的核心参考!

因此,当我们想要获得领域分析模型时,首先需要参考的就是统一语言,它可以有效地帮助我们识别出整个模型中最核心也是最基本的显式【领域概念】。

二、统一语言与领域分析

统一语言主要体现在两个方面:统一的领域术语 和 统一的领域行为描述

2.1、统一的领域术语

在领域建模过程中,我们需要建立维护一个大家一致认可的术语表。术语表是领域建模的关键,是模型的重要参考规范,能够真实地反应出模型的领域意义:

  • 术语表中需要包括整个团队精炼出来的【术语概念】,以及对该术语的清晰明白的解释说明。若有可能,可以为难以理解的术语提供具体的案例
  • 需给出对应的英文术语翻译(尤其简称缩写),以便于后续代码开发,在代码中统一语言(就直接为编码实现提供了类、方法、属性等命名的依据,保证代码自身就能直观表达领域含义,提高代码可读性——DDD非常强调代码即文档)

2.2、统一的领域行为描述

领域行为描述可以视为对领域术语甄别发现的一种延伸。领域行为是对业务过程的描述,相对于领域术语而言,它体现了更加完整的业务需求以及复杂的业务规则

在描述领域行为时,需要满足以下要求:

  • 从领域的角度而非实现角度描述领域行为
  • 若涉及到领域术语,必须遵循术语表的规范
  • 强调动词的精确性,符合业务行为在该领域的合理性
  • 要突出与领域行为有关的领域概念

三、统一语言落地执行

然而,所谓“统一语言”,并非某一种固定格式的交付物,而是领域驱动设计过程中无形的最高设计准绳。

为了保证分析与设计的质量,我们需要不停地追问:

  • 我们的沟通讨论符合统一语言吗(同一语境下)?
  • 我们设计的模型符合统一语言吗?
  • 限界上下文的领域概念遵循统一语言吗?
  • 类名与方法名满足统一语言的规范吗?
  • 一旦发生变更,我们及时地对其进行更新了吗?(术语表更新,代码命名重构)
    在这里插入图片描述

磨刀不误砍柴工,多花一些时间去打磨统一语言,并非时间的浪费,相反还能改进领域模型乃至编码实现的质量。

重视统一语言,就能促成彼此正面影响的良性循环;否则领域模型与代码会因为沟通不明而泥足深陷,就真是得不偿失了。

欢迎关注: 梦语路
梦语路

参考:

  • 张逸《领域驱动设计实践-战略篇》
  • 网络资料理解再整理
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值