阶段总结(1)

本文总结了采用领域驱动设计(DDD)思想的项目结构,详细阐述了各层的职责与组件,包括application、common、domain、infrastructure和resources层。在domain层中,介绍了使用模板方法实现业务流程的优缺点,并分享了一个模板框架的链接。此外,还讨论了代码组织和事务管理的注意事项。

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

年后先做一些总结吧,不着急新东西

主要是项目框架上的总结,没有先后顺序,想到哪写哪

一、项目结构

在DDD思想下:

一个module下的项目分层主要是:

(1)application:

包含: api,job(定时任务),service(app层service)

api包括mapper,完成DTO到domain entity的映射

(2)common

util,config,exception,enums,constant,validate等

个人倾向于把apollo的config以namespace做封装,保证namespace和java上映射的一致性,命名可以以apollo开头,类似enums以Enum开头一样

exception 还是尽量放在common包下

validate可以考虑有,将基本的校验封装成工具类的形式,但这部分更加贴近于app层

(3)domain

entity,external,repository,service

external主要用来管理和外部的调用接口,其实现在infrastructure层中
repository主要用来管理和DB的接口调用增删改查,其实现也在infrastructure层中,仅在domain层中做调用

domain的核心service中的调用最佳实践就是松耦合+上下文

(4)infrastructure

external,persistence

external作为微服务之间接口调用的实现

persistence承载DAO层的包括mapper,包括assembler(做DB对象向领域实体映射),包括domain层repository的实现

(5)resources

mapper,国际化,环境配置,日志配置等等

二、领域层实现

https://gitee.com/tanglei09/template-frame 模板方法地址

目前是用模板方法的方式,有好有坏,先看看,Service内分好了业务流程

(1)好处:

逻辑上是清晰的,service累积起来之后,至少Service内部的逻辑是有区分的,也方便后续组员维护和重构代码

抽象方法存放公共方法,能够一定程度上提高整个代码的复用性

(2)坏处:

不够灵活,可能需要额外的类去完善流程一个Service,有些service用不到的流程也要在实现类里实现

注解式的事务有可能覆盖不到全部场景,可能需要编程式事务

有好有坏,我觉得合理的配合额外的类+设计模式可以提高模板的可用性。

暂时先写这么多,想起来再写

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值