DDD 战略设计:建立统一语言

2019-12-17  本文已影响0人  贪睡的企鹅

1 如何理解“统一语言”

1.1 为什么使用“统一语言”

开发人员与领域专家之间,他们掌握的知识存在巨大的差异。善于技术的开发人员关注于数据库、通信机制、集成方式与架构体系,而精通业务的领域专家对这些却一窍不通,但他们在讲解业务知识时,使用各种概念如呼吸一般自然,这些对于开发人员来说,却成了天书,这种交流就好似使用两种不同语言的外国人在交谈。在没有达成一致的情况下,那就是鸡同鸭讲,毫无沟通效率,相反还可能造成误解。

从需求中提炼出统一语言,其实就是在两个不同的语言世界中进行正确翻译的过程。

1.2 “统一语言”用处

一旦确定了统一语言,无论是与领域专家的讨论,还是最终的实现代码,都可以通过使用相同的术语,清晰准确地定义领域知识。重要的是,当我们建立了符合整个团队皆认同的一套统一语言后,就可以在此基础上寻找正确的领域概念,为建立领域模型提供重要参考。


统一语言体现在两个方面:

领域术语通常表示对象命名,如商品、订单等,对应实体对象

领域行为通常表示一个动作或事件,如商品已下单、订单已付款等,对应领域事件或者命令

2 统一的领域术语

领域术语是有行业规范的,例如财会领域就有标准的会计准则,对于账目、对账、成本、利润等概念都有标准的定义,在一定程度上避免了分歧。然而,标准并非绝对的,在某些行业甚至存在多种标准共存的现象。

城市对与航段

领域术语.jpg

我们可以做什么

3 领域行为描述

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

4 小结

磨刀不误砍柴工,多花一些时间去打磨统一语言,并非时间的浪费,相反还能改进领域模型乃至编码实现的质量,反过来,领域模型与实现的代码又能避免统一语言的“腐化”,保持语言的常新。重视统一语言,就能促成彼此正面影响的良性循环;否则领域模型与代码会因为沟通不明而泥足深陷,就真是得不偿失了。

上一篇 下一篇

猜你喜欢

热点阅读