代码分层 (横向功能 & 纵向业务)
- 横向: 需要提取协议层和标准流程层, 制定标准请求响应, 避免协议转换侵入到业务逻辑代码中
- 纵向: 业务流程需要聚合, 避免 xxxService 调用下游一大批 xxxDao 完成一个事情的情况
总的思路就是是:总结、抽象出纵向请求的过程中需要横向扩展的点,发展成独立的一层,总体思想还是聚合、解耦。例如:将业务操作聚合,将业务操作与参数转换解耦。
业务操作层应该有自己标准的入参、出参,业务操作上层在接收外部调用参数后,需要经过参数转换层,将外部参数转换成业务层标准参数进行请求。
现代码结构
分层思路
common (公共组件)
lock, aspect, cat, log, config, util, exception, cache, etc
facade (接口封装,协议转换)
http
thrift
xxx
process (标准流程组装)
开通
重置
退款
扣款
modules (核心模块)
user
用户信息,用户资料,审核
card
卡种类/规则
卡管理 (开通,注销)
asset
资产配置
资产记录
资产变更流水
order
充
扣
退
support(支持相关)
event (关键事件记录, 事件驱动支持)