犁书重构规划

乐书网络内部开发分享,非相关人员忽略

重构核心任务

整合B端/C端服务

相当于不同的产品:

  • 微信书、微博书、QQ书
  • 简书
  • 指南猫书
  • 诗歌书

主要区别:

  • 数据来源
  • 排版方式
  • 支付、结算方式

前后端分离

jsp与SPA混合

将用户页面与管理平台归并入两个webapp

mock框架模拟未完成的rest api :Swagger

引入Maven,确定服务模块边界,规范模块化

水平模块之间失去了边界,互相环形依赖,牵一发而动全身

https://www.processon.com/view/link/58578d96e4b0c1fa6c5cd4f5

  1. 树形依赖,代码上严禁基础模块向附加模块的依赖,如用户模块依赖分销模块
  2. 面向接口设计

拆分:

  1. 从业务逻辑上思考业务模型真正的依赖关系
  2. 是否依赖整个数据模型,即数据层依赖
  3. 如果只是依赖部分行为,则将被依赖的部分设计成接口,高层模块只依赖低层模块的接口

加入单元测试

使用spring-test的测试组件,主要是MockHttpServletRequest对象来测试rest-api接口,依赖注入来测试供其他业务模块调用的service接口。

消息队列解耦模块,异步处理支线流程

注意事项

  • 先定义高层级对外接口及其测试代码,往下重构,避免遗漏,减少对外特性变化
  • 重构数据库结构时,必须留下SQL脚本备份,严禁直接使用图形化界面修改本地数据表就算完成任务
  • 代码审查