领域驱动战略设计实践-建立统一语言

统一语言是领域驱动设计中需求分析的关键,它确保团队成员与领域专家使用相同术语进行有效沟通,避免误解。通过建立统一的领域术语和行为描述,团队能更好地理解和实现业务逻辑。在实践中,需要维护术语表并明确英文术语,以减少沟通障碍和代码实现混乱。领域行为描述补充了术语,完整呈现业务流程和规则,影响API设计和领域模型构建。重视统一语言能提升领域模型和代码质量,促进团队协作效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

统一语言是提炼领域知识的产出物,获得统一语言就是需求分析的过程,也是团队中各个角色就系统目标、范围与具体功能达成一致的过程。

使用统一语言可以帮助我们将参与讨论的客户、领域专家与开发团队拉到同一个维度空间进行讨论,若没有达成这种一致性,那就是鸡同鸭讲,毫无沟通效率,相反还可能造成误解。因此,在沟通需求时,团队中的每个人都应使用统一语言进行交流。

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

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

  • 统一的领域术语
  • 领域行为描述

统一的领域术语

形成统一的领域术语,尤其是基于模型的语言概念,是沟通能够达成一致的前提。 尤其是开发人员与领域专家之间,他们掌握的知识存在巨大的差异。善于技术的开发人员关注于数据库、通信机制、集成方式与架构体系,而精通业务的领域专家对这些却一窍不通,但他们在讲解业务知识时,使用各种概念如呼吸一般自然,这些对于开发人员来说,却成了天书,这种交流就好似使用两种不同语言的外国人在交谈。记得有一次我去洛杉矶出差,居住期间,需要到一家洗衣店干洗衣服,交付完衣服后,我想向洗衣店老板索要收据,以作为之后领取衣服的凭证。好不容易在我脑中贫瘠的英文词典里搜索到 receipt 这个词语,自以为正确,谁知道讲出来后老板一脸茫然,不是 receipt,那么是 ……invoice?手舞足蹈说了半天,老板才反应过来,递过来一张收据,嘴里吐出 ticket 这个词语,My God,受了中学英语的流毒,我还以为 ticket 这个词语只能用到电影院呢。

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

某些领域术语是有行业规范的,例如财会领域就有标准的会计准则,对于账目、对账、成本、利润等概念都有标准的定义,在一定程度上避免了分歧。然而,标准并非绝对的,在某些行业甚至存在多种标准共存的现象。以民航业的运输统计指标为例,牵涉到与运量、运力以及周转量相关的术语,就存在 ICAO(International Civil Aviation Organization,国际民用航空组织)与IATA(International Air Transport Association,国际航空运输协会)两大体系,而中国民航局又有自己的中文解释,航空公司和各大机场亦有自己衍生的定义。

例如,针对一次航空运输的运量,就要分为城市对与航段的运量统计。城市对运量统计的是出发城市到目的城市两点之间的旅客数量,机场将其称之为流向。ICAO 定义的领域术语为 City-pair(OFOD),而 IATA 则命名为 O & D。航段运量又称为载客量,指某个特定航段上所承载的旅客总数量,ICAO将其定义为 TFS(Traffic by flight stage),而 IATA 则称为 Segment Traffic。

即使针对航段运量这个术语,我们还需要明确地定义这个

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值