垂直划分:
参考阿里代码分层结构
api、service、manager、dao、rpc中间可以根据业务情况,适当增加、减少分层
层级之间通信,需要数据实体
DO :数据库表对应
DTO :数据传输对象
VO :数据展示对象
api层数据传输对象不能传递到DAO层
DAO层DO对象也不能传递到api层
api与service层对接,service接收api请求,转换为统一模型,再与下层进行交互
返回同理,service进行数据处理之后,将数据整合好返回到api层
可以统一在service层做相关转换,或根据需要单独出一层做相关参数转换
应该禁止请求参数从api层一直透传到下游的情况
若业务复杂,可能service层内部的方法也需要提供一个错误码返回,可以视情况,进行带内部错误码的返回结果包装设计
返回到api层的时候,要统一好返回形式和错误码
水平划分:
若业务较复杂,且不同的模块业务之间边界比较清晰,视情况考虑是否将不同模块拆分成不同的系统,进行微服务化
根据业务情况,水平方向按业务可划分为不同模块,不同模块之间代码保持相对独立,便于阅读理解
不同模块之间根据业务情况应设计合理的接口,进行跨模块调用
应将每个模块都当做一个微服务去建设