背景
多个小伙伴合作开发,因为个人习惯,对工程的理解不同,有的人习惯controller写大量的业务逻辑,有的人习惯在service中之间调用远程服务,这样就导致了整个项目混乱不堪,难以维护。这里记录一下编程规范。
工程规约
开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行 网关安全控制、流量控制等。
终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染, JSP 渲染,移动端展示等。
Controller 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。
Service 层:相对具体的业务逻辑服务层。
Manager 层:通用业务处理层,它有如下特征:1. 对第三方平台封装的层,预处理返回结果及转化异常信息;2. 对Service层通用能力的下沉,如缓存方案、中间件通用处理;3. 与DAO层交互,对多个DAO的组合复用。
DAO 层:数据访问层,与ORM模型交互。
ORM 层即Object-Relationl Mapping,它的作用是在关系型数据库和对象之间作一个映射,与底层 MySQL、Oracle、Hbase 进行数据交互。这样,我们在具体的操作数据库的时候,就不需要再去和复杂的SQL语句打交道。
参考资料:
- https://www.jianshu.com/p/927a2fd20449
- https://www.jianshu.com/p/00a7ca8d6bea