html 定义列表dddt,一个微服务+DDD(领域驱动设计)的代码结构示例

html 定义列表dddt,一个微服务+DDD(领域驱动设计)的代码结构示例前有幸拜读过诸多大神关于DDD的实现落地等文章,学习较多,受益匪浅,在此推荐:下面参考了DDD官方的结构,总结了前辈们的相关经验,再根据自身对微服务和DDD学习和理解,做了一个用SpringCloud搭建的最基本的结构例子。个人才疏学浅,如有雷同或是不当之处,望各位大佬见谅和帮忙指正。首先引经据典,参考官方架构草图,DDD总体结构分为四层:Infrastructure(基础实施层),…

大家好,欢迎来到IT知识分享网。

前有幸拜读过诸多大神关于DDD的实现落地等文章,学习较多,受益匪浅,在此推荐 :

下面参考了DDD官方的结构,总结了前辈们的相关经验,再根据自身对微服务和DDD学习和理解,做了一个用SpringCloud搭建的最基本的结构例子。个人才疏学浅,如有雷同或是不当之处,望各位大佬见谅和帮忙指正。

首先引经据典 , 参考官方架构草图,DDD总体结构分为四层  :  Infrastructure(基础实施层),Domain(领域层),Application(应用层),Interfaces(表示层,也叫用户界面层或是接口层),各个层面的作用下面介绍。

f84fb30aab9f20b179ff3f4bebd848be.png

985dd6d013eb90c0b53d4fc1f5ff1195.png

对于DDD的设计而言,最重要的是如何去划分领域,划分好边界。在代码设计上,之前有看到过大佬用模块(Modules)来进行上下文界定和划分。如图下 :

c5f9823615dd0ab99851b7fe46f47ef0.png

而对于微服务而言,就非常适合从业务上去划分以上的各个Modules,划分好各个业务板块。

微服务 + DDD,个人觉得应该是首先是从微服务的角度(如何划分微服务)考虑去划分大的业务模块,每一个微服务都应该是一个可以单独部署,各司其职的模块;

而在微服务实际开发中,结合DDD的思想去划分所有属于自己的领域。

如图示例,对于我这个Project而言,是模块已经划分好的微服务应用,代码设计上就分为  Infrastructure,Domain,Application,Interfaces :

66c0185317bb579ea3e2e3ae31acce2b.png

Infrastructure 层 :  基础实施层,向其他层提供通用的技术能力(比如工具类,第三方库类支持,常用基本配置,数据访问底层实现)

f0ffa7de8704a7f144db5dd2978cdf57.png       

768cf0b64591e679c205ee43908f5568.png

Domain层 : 主要负责表达业务概念,业务状态信息和业务规则;是整个系统的核心层,几乎全部的业务逻辑会在该层实现。

759bef8a95b43c3a3c9a9f506d03fa28.png      

18d5daf370715862ddb391d131f7aaaa.png

Application层 :  相对于领域层,应用层是很薄的一层,应用层定义了软件要完成的任务,要尽量简单。

注 : 这里图里面所说的对内对外,对程序而言,事实上是从展现层调用应用层,应用层调用领域层,领域层或调用基础是实施层。

68db23c06ebcdce5aa2aedf7c83079de.png    

18a5f3773c20731c7828ed0d5f0d9917.png

Interfaces层 : 负责向用户显示信息和解释用户命令,请求应用层以获取用户所需要展现的数据(比如获取首页的商品数据)

01b9857e0d9aaeb0c1b22a981dde963a.png   

5c086caab29c231828725b27f6bda953.png

感谢各位提出意见和支持。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/20544.html

(0)
上一篇 2024-02-07 13:26
下一篇 2024-02-08 14:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信