优秀代码都是如何分层的呢?

前言在做一个小型的管理系统的时候,有同学说他的功能都能实现,但是就是代码比较凌乱,时间久了就不知道各个包放的啥,有什么功能 。
【优秀代码都是如何分层的呢?】我觉得不仅要有良好的写代码习惯,也要有好的分层意识 。不能因为是初学者就忽视这个问题,因为好的习惯能给你带很多方便,也为未来做项目打下基础 。习惯不好以后改过来挺麻烦的 。
因此最近看了一些大牛的文章,做了一些整理:
首先说一下我们初学者学的MVC设计模式通过这个模式就会更好的理解最新的结构分层思想

优秀代码都是如何分层的呢?

文章插图
MVC模式
阿里的编码规范中约束的分层一个好的分层,应该具备以下特点:
  • 方便后续代码进行维护扩展
  • 分层效果需要让整个团队接受,要始终明白未来的项目不是你一个人完成的 。在一开始我觉得我们就应该有这样的思想准备 。
  • 各层职责边界清晰

优秀代码都是如何分层的呢?

文章插图
 
开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行 网关安全控制、流量控制等 。
终端显示层:各个端的模板渲染并执行显示的层 。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移动端展示等 。
Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等 。
Service 层:相对具体的业务逻辑服务层 。
Manager 层:通用业务处理层,它有如下特征:1. 对第三方平台封装的层,预处理返回结果及转化异常信息;2. 对Service层通用能力的下沉,如缓存方案、中间件通用处理;3. 与DAO层交互,对多个DAO的组合复用 。
DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 进行数据交互 。
阿里巴巴规约中的分层比较清晰简单明了,但是描述得还是过于简单了,以及service层和manager层有很多同学还是有点分不清楚之间的关系,就导致了很多项目中根本没有Manager层的存在 。


    推荐阅读