前言在做一个小型的管理系统的时候,有同学说他的功能都能实现,但是就是代码比较凌乱,时间久了就不知道各个包放的啥,有什么功能 。
【优秀代码都是如何分层的呢?】我觉得不仅要有良好的写代码习惯,也要有好的分层意识 。不能因为是初学者就忽视这个问题,因为好的习惯能给你带很多方便,也为未来做项目打下基础 。习惯不好以后改过来挺麻烦的 。
因此最近看了一些大牛的文章,做了一些整理:
首先说一下我们初学者学的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层的存在 。
推荐阅读
- Cache 和 Buffer 都是缓存,主要区别是什么?
- 黑客远程代码执行,你的服务器还安全嘛?
- 黄金有白点和黑点都是什么原因 黄金有白点是不是假的
- 智能马桶会溅到屁股上吗 智能马桶会溅得后边都是水吗
- 初中生优秀作文:美丽的错误 关于错误的作文
- 2月份的车厘子都是进口的吗,2月份的车厘子是什么地方的
- 三伏贴有用吗效果好吗 三伏贴都是一样的药吗
- 社保卡信息怎么查询,这几种方法都是比较实用和简单的
- “节约光荣”优秀手抄报开展 三年级手抄报图片
- 初中生优秀作文:我感恩父母 学会感恩作文600字