896788140
0732-79481537
导航

领域基本观点字典

发布日期:2023-10-21 17:05

本文摘要:作者:知一杂谈出处:https://noogel.xyz/2021/01/15/1.html领域驱动设计中界说了超多的观点,如果不多找几篇资料综合的去看,正确的明白比力难题,下面搜集整理了大部门的领域驱动中的观点,并加以明白形貌。战略设计与战术设计战略设计主要从业务视角出发,建设业务领域模型,划分领域界限,建设通用语言的限界上下文,限界上下文可以作为微服务设计的参考界限。 它是从高层事业来绅士我们的软件系统。

开云体育官网下载

作者:知一杂谈出处:https://noogel.xyz/2021/01/15/1.html领域驱动设计中界说了超多的观点,如果不多找几篇资料综合的去看,正确的明白比力难题,下面搜集整理了大部门的领域驱动中的观点,并加以明白形貌。战略设计与战术设计战略设计主要从业务视角出发,建设业务领域模型,划分领域界限,建设通用语言的限界上下文,限界上下文可以作为微服务设计的参考界限。

它是从高层事业来绅士我们的软件系统。从战略设计角度来看,一套基础的电商业务应该包罗如下领域,支付域、生意业务域、商品域、库存域、履约域。差别领域之间通过界线上下文来划分界限。

战术设计则从技术视角出发,偏重于领域模型的技术实现,完成软件开发和落地,包罗:聚合根、实体、值工具、领域服务、应用服务和资源库等代码逻辑的设计和实现。它主要关注的是技术层面的实施,也是对我们法式员最实在的地方。战术设计的详细落地案例在后面的内容中会解说。

领域 & 子领域DDD 的领域就是这个界限内要解决的业务问题域。既然领域是用来限定业务界限和规模的,那么就会有巨细之分,领域越大,业务规模就越大,反之则相反。领域可以进一步划分为子领域。

开云体育官网下载

我们把划分出来的多个子领域称为子域,每个子域对应一个更小的问题域或更小的业务规模。焦点域 & 通用域 & 支撑域在领域不停划分的历程中,领域会细分为差别的子域,子域可以凭据自身重要性和功效属性划分为三类子域,它们划分是:焦点域、通用域和支撑域。决议产物和公司焦点竞争力的子域是焦点域,它是业务乐成的主要因素和公司的焦点竞争力。

没有太多个性化的诉求,同时被多个子域使用的通用功效子域是通用域。另有一种功效子域是必须的,但既不包罗决议产物和公司焦点竞争力的功效,也不包罗通用功效的子域,它就是支撑域。基于以上观点界说,对订单域举行如下的拆分,其中生意业务子域和算价子域是最关键的焦点子域,限购子域、交付子域、报表子域、会员订阅子域是支撑子域,消息子域为相同各个子域的桥梁分类为通用子域。

注意这里的曲线只是用来区分差别子域类型,不是界线上下文。事件风暴事件风暴是一项团队运动,领域专家与项目团队通过头脑风暴的形式,枚举出领域中所有的领域事件,整合之后形成最终的领域事件荟萃,然后对每一个事件,标注出导致该事件的下令,再为每一个事件标注出下令提倡方的角色。下令可以是用户提倡,也可以是第三方系统挪用或者定时器触发等,最后对事件举行分类,整理出实体、聚合、聚合根以及限界上下文。

开云体育官网下载

而事件风暴正是 DDD 战略设计中经常使用的一种方法,它可以快速分析和剖析庞大的业务领域,完成领域建模。通用语言 & 界线上下文在 DDD 领域建模和系统建设历程中,有许多的到场者,包罗领域专家、产物司理、项目司理、架构师、开发司理和测试司理等。对同样的领域知识,差别的到场角色可能会有差别的明白,那大家交流起来就会有障碍,怎么办呢?因此,在 DDD 中就泛起了“通用语言”和“限界上下文”这两个重要的观点。这两者相辅相成,通用语言界说上下文寄义,限界上下文则界说领域界限,以确保每个上下文寄义在它特定的界限内都具有唯一的寄义,领域模型则存在于这个界限之内。

通用语言团队交流告竣共识的能够明确简朴清晰的形貌业务规则和业务寄义的语言就是通用语言。解决各岗位的相同障碍问题,促进差别岗位的和互助,确保业务需求的正确表达。通用语言贯串于整个设计历程,基于通用语言可以开发出可读性更好的代码,能准确的把业务需求转化为代码。

界线上下文用来封装通用语言和领域工具,提供上下文情况,保证在领域之内的一些术语、业务相关工具等(通用语言)有一个确切的寄义,没有二义性。这个界限界说了模型的适用规模,使团队所有成员能够明确地知道什么应该在模型中实现,什么不应该在模型中实现。栗子说明在商品域,商品实体则对应着一个详细的 SKU 商品,包罗着标题和金额,如现在的课程、会员服务。

在订单域中的商品实体并不等同域商品域中的实体,好比可以将优惠券做成可以被售卖的商品,coupon_no 就是 product_key,具有 non-consumable 属性;或者将付费咨询的用户服务打包成商品售卖,那么 member_id 就能映射成 producer_key,而且觉有 consumable 属性。界线上下文就是区分差别领域下的领域工具,划定了领域工具寄义的界限。在订单域中,商品实体默认可以是商品系统 SKU,也可以是优惠券和用户服务等。上下文映射图上下文映射图就通过绘图的方式展示N(N>=2)个上下文之间的映射关系。

ACL表现防腐层,OHS表现开放主机服务,PL表现公布语言,U代表上游,D代表下游。领域服务你是否遇到过这样的问题:想建模一个领域观点,把它放在实体上不合适,把它放在值工具上也不合适,然后你冥思苦想着自己的建模方式是不是出了问题。恭喜你,祝贺你,你的建模手法完全没有问题,只是你还没有接触到领域服务(Domain Service)这个观点,因为领域服务原来就是来处置惩罚这种场景的。好比,要对客户端类型和版本举行判断是否支持某一项功效,我们可以建立一个 ClientVersionService 来卖力。

值得一提的是,领域服务和上文中提到的应用服务是差别的,领域服务是领域模型的一部门,而应用服务不是。应用服务是领域服务的客户,它将领域模型酿成对外界可用的软件系统。领域事件在DDD中,领域事件便可以用于处置惩罚上述问题,此时最终一致性取代了事务一致性,通过领域事件的方式到达各个组件之间的数据。


本文关键词:领域,基本观点,字典,作者,知,一,杂谈,出处,开云体育官网下载

本文来源:开云体育官网下载-www.miqitech.com