DDD - 通用语言和限界上下文

一、概念:

1、通用语言:

(1)定义上下文含义

(2)在事件风暴过程中,通过团队交流达成共识的,能够简单、清晰、准确描述业务涵义和规则的语言

(3)不管你在团队中承担什么角色,在同一个领域的软件生命周期里都使用统一的语言进行交流。

(4)通用语言可以解决交流障碍这个问题,使领域专家和开发人员能够协同合作,从而确保业务需求的正确表达。

(5)通用语言包括术语和用例场景

2、限界上下文

(1)定义领域边界

(2)语言都有它的语义环境,同样,通用语言也有它的上下文环境。为了避免同样的概念或语义在不同的上下文环境中产生歧义,DDD 在战略设计上提出了“限界上下文”这个概念,用来确定语义所在的领域边界。

(3)将限界上下文拆解为两个词:限界和上下文。限界就是领域的边界,而上下文则是语义环境。通过领域的限界上下文,我们就可以在统一的领域边界内用统一的语言进行交流。

(4)用来封装通用语言和领域对象,提供上下文环境,保证在领域之内的一些术语、业务相关对象等(通用语言)有一个确切的含义,没有二义性。

(5)领域边界就是通过限界上下文来定义的。

二、二者存在的意义:

确保每个上下文含义在它特定的边界内都具有唯一的含义,领域模型则存在于这个边界之内。

三、限界上下文和微服务的关系

理论上限界上下文就是微服务的边界。我们将限界上下文内的领域模型映射到微服务,就完成了从问题域到软件的解决方案。

注意:

除了理论,微服务的拆分还是有很多限制因素的,在设计中不宜过度拆分。

DDD是一种帮助软件团队聚焦核心业务并构建复杂系统的方法论,其在Java环境中的实现尤其关注于通过清晰的建模语言来处理业务复杂性。首先,我们来看4C建模。4C是指实体(blue)、值对象(yellow)、聚合根(green)实体集(red),每种都有其特定的标识用途。实体代表具有唯一标识的事物;值对象是无标识的数据结构;聚合根是实体的集合,用于封装控制数据的访问;实体集则代表一组具有相同类型但无唯一标识的对象。运用4C建模方法,能够清晰地界定业务领域的边界概念,为后续的领域叙事打下基础。 参考资源链接:[JAVA-DDD:领域驱动设计详解与实践](https://wenku.csdn.net/doc/3czip3re72) 领域叙事则是围绕着业务故事展开的建模方式,它通过讲述故事来揭示领域模型。在叙事中,团队成员共同定义领域内的事件、规则操作,从而形成一个统一的通用语言通用语言DDD中的一个重要概念,它确保所有团队成员在沟通时能够准确表达业务概念,并且理解这些概念在业务模型中的意义。 限界上下文DDD中用于界定模型适用范围的概念。每个限界上下文都是一个清晰定义的业务边界,拥有自己的通用语言。在Java项目中建立限界上下文,可以帮助我们分隔不同的业务关注点,允许它们独立开发演化,同时也方便了团队成员之间的协作。 结合4C建模领域叙事,在Java中实现DDD时,你需要从识别实体规则开始,然后通过故事讲述的方式来强化团队对这些概念的理解,最终在项目中构建起清晰的限界上下文。推荐阅读《JAVA-DDD:领域驱动设计详解与实践》来获取更多有关如何在Java环境中有效实施DDD的实战经验技巧,其中详细介绍了如何通过4C建模领域叙事等技术建立通用语言限界上下文,以及如何在实际项目中应用DDD的完整实践过程。 参考资源链接:[JAVA-DDD:领域驱动设计详解与实践](https://wenku.csdn.net/doc/3czip3re72)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值