机缘
最近换了一个项目,所以很久没有更新博客。
原项目使用的是SpringBoot 3.3.0版本,jdk使用的是17,算是比较新的。
现在使用的多Springcloud框架,采用的是DDD模式,所以分享一下DDD的使用心得。
收获
以原架构的设计模式,写一个接口,就直接从controller、service、mapper、xml(按需),一套下来,然后对完提供接口。
这种方式操作的话,可以从表的角度,做复用,比如A表有一个查询,张三使用了,那么李四也可以使用这个查询。感觉对于项目的接口实现很方便,但是如果张三和李四都做相同的业务,却彼此不知道的话,就可能出现重复造轮子。
近期使用的框架,采用的DDD的模式,网上也有很多对DDD模式的模式。
就本人的感觉,很像原来Springboot的方式下对mapper或者service的复用,只不过DDD按照业务领域去驱动功能。将原来从上到下的接口拆分开。
要求站在业务的角度实现接口。而接口与数据层的交互,是单独的数据领域的交互。
此处很重要,站在业务领域。这种模式其实就对开发人员有了更高的要求,不仅需要过硬的技术,同时也需要对业务有深刻的理解。
所以在开发接口是,不仅仅要按照BA的要求完成,更要有自己的理解,这对于开发人员的前期工作会很辛苦,但是后期会更轻松,业务领域的知识也更深刻。
成就
说了这么多,举一个详细的例子。
比如BA要求实现一个人员管理功能。
-
站在单点开发的角度
人员管理功能包含人员的新增,机构的维护,角色的维护等等。
这个时候就要定义接口了:人员新增的接口、机构新增的接口、角色的维护。
每个都是单独的模块,这样的机构的新增,角色的维护,在其他地方也可以复用。 -
站在DDD的角度
人员管理功能,只需要人员的新增接口,而非接口的拆分。
将其看做一整个业务领域,将所谓的 人员表、机构表、角色表,均看成数据层。
憧憬
世界和平!!!
5万+

被折叠的 条评论
为什么被折叠?



