老用户系统改造升级前言
问题
- 业务庞杂
- package 包混乱
- 老旧工具类不稳定
- 路由名规则混乱
- 代码耦合度过高,重复代码过多
- 大块代码过多
导致后期代码维护困难,比如 bug 定位,新功能迭代,新人上手困难等
拆分目的
- 重新规划 package 包
- 弃用老旧工具类
- 重新定义路由规则(尽可能兼容)
- 降低代码耦合度,避免重复代码,大块代码
- 明确注释
- 统一 api 调用工具
步骤
- 依照阿里巴巴工程分层进行 package 规划
- 定义新项目的含义(非登录注册相关的接口全部分拆重构到新服务
用户服务分拆为注册登录和用户中心两个服务。)拆分需要迁移的接口,及接口路由命名 - 通用功能的编写,全局异常拦截,通用过滤器,全局返回 code,异常业务流程处理
-
业务编码
- 通用层处理,cache,rpc,三方 api
- 老旧工具类替换
- common 服务层抽离
- 单元测试和集成测试分包处理
新工程目录
- intTest 为集成测试目录
- com.eqxiu.common 为通用逻辑,此包不在 Alibaba 工程规范中,此处仅用于抽取公用配置
- user.config 全局异常拦截,跨域,等配置类
- user.constant 业务静态变量
- user.manager 通用业务层,比如缓存,rpc,三方 api(微信服务,短信服务等)
- user.service 业务层
- user.util 无业务工具类(这里强调无业务,包含不调用远程服务,尽量只依赖基础类库)
- user.web 控制层(这里仅仅做参数校验)