vlambda博客
学习文章列表

5年老码农的代码规范,值得学习!

从事Java有5年了,但是写博客以及分享java知识是从去年才开始的,我想主要有以下两个原因吧!


1、由于债务负担,2018年我进了一家it公司打杂,所谓打杂就是curd操作,成为了一名curd程序员,这让我有很多空余时间。


2、自己必须更快的成长,公司学不到怎么办?那就自己学,学了那么多怎么才能加深影响呢?写博客!写博客会让你更加深入的了解每个知识点。


最后我发现,我感觉最难不是技术,而是规范!!!(当然,没遇到一个好的师傅带),每个项目的代码规范都不同,但是这很重要,有多重要就不用我多说了吧。如果你觉得无所谓,请忽略下面内容。


开始我就属于我看着这个代码挺好的,我就用这个,后来看到另一个代码还好,我又用这个,就这样,一会用这个一会用那个,始终没有一套自己的标准!!!(而且我是一个代码强迫者,当我看到这套代码好的时候,我居然可以把之前做好的功能全部重来一次!!!),那怎么办呢?


我开始上github,看star比较多的开源项目,突然我好像发现了新大陆,一切都柳暗花明,比如:mall、litemall、eladmin、ruoyi、davinci等许多优秀的项目,代码也都写得挺好的,最后我整理了一套自己认为比较好的代码规范。


该文只是分享我的代码规范,只供参考,但是你要相信一句话


!!!!规范>编码!!!!!!!!


应用分层(参考阿里规范)

5年老码农的代码规范,值得学习!

• 开放接口层:可直接封装 Service 方法暴露成 RPC 接口;通过 Web 封装成 http 接口;进行网关安全控制、流量控制等。

终端显示层:各个端的模板渲染并执行显示的层。当前主要是 velocity 渲染,JS 渲染,JSP 渲染,移

动端展示等。

Web 层:主要是对访问控制进行转发,各类基本参数校验,或者不复用的业务简单处理等。

Service 层:相对具体的业务逻辑服务层。

Manager 层:通用业务处理层,它有如下特征:

1) 对第三方平台封装的层,预处理返回结果及转化异常信息。

2) 对 Service 层通用能力的下沉,如缓存方案、中间件通用处理。

3) 与 DAO 层交互,对多个 DAO 的组合复用。

DAO 层:数据访问层,与底层 MySQL、Oracle、Hbase 等进行数据交互。

外部接口或第三方平台:包括其它部门 RPC 开放接口,基础平台,其它公司的 HTTP 接口。


上述介绍了阿里规约中的应用分层,以及每层的作用是什么,既然每层我们知道了,但是每层如何开发呢?或者说如何编码呢?下面就是我的每一层编码规范


编码规范


首先终端显示层到web层,也就是HTTP请求:采用RESTful风格

5年老码农的代码规范,值得学习!

也就是

/admin HTTP POST #新增admin/admin/1 HTTP GET #获取id=1的admin/admin/1 HTTP PUT #修改id=1的admin/admin/1 HTTP DELETE #删除id=1的admin


web(controller):统一返回json格式,方法命名根据请求获取资源行为,比如:getRoleList,但我会保留几个基础命名:list,getById,update,delete;业务都扔到service层去,不要在web层做,只做简单验证就是了,这样的目的就是高内聚低耦合)

5年老码农的代码规范,值得学习!


service:基本遵循阿里巴巴手册,但是业务除外

1) 获取单个对象的方法用 get 做前缀。

2) 获取多个对象的方法用 list 做前缀,复数形式结尾如:listObjects。

3) 获取统计值的方法用 count 做前缀。

4) 插入的方法用 save/insert 做前缀。

5) 删除的方法用 remove/delete 做前缀。

6) 修改的方法用 update 做前缀。

5年老码农的代码规范,值得学习!


dao:同service层,但是完全遵循阿里巴巴手册,因为这一层没有业务


mysql:业务分块,一个块一个系统,比如oms(订单管理系统),然后再加业务名,比如订单,oms_order

5年老码农的代码规范,值得学习!



POJO:DO/DTO/BO/VO 的统称。有些喜欢写一个大而全的实体类,什么地方都在用,而阿里巴巴给了规范是每层的实体都不一样,也就是说你调用下一层或者上一层都需要实体转换,以下是一个大神的解决方案。


5年老码农的代码规范,值得学习!


你见过工作5年的程序员还在写curd吗?5年老码农的代码规范,值得学习!5年老码农的代码规范,值得学习!5年老码农的代码规范,值得学习!5年老码农的代码规范,值得学习!5年老码农的代码规范,值得学习!


目录结构

5年老码农的代码规范,值得学习!

返回工具类

5年老码农的代码规范,值得学习!

实体结构

5年老码农的代码规范,值得学习!




相关推荐

rancho-web项目

https://github.com/rancho00/rancho-web

mall项目

https://github.com/macrozheng/mall

litemall项目

https://github.com/linlinjava/litemall

eladmin项目

https://github.com/elunez/eladmin

ruoyi项目

https://gitee.com/y_project/RuoYi-Vue

davinci项目

https://github.com/edp963/davinci

你的项目应该如何分层

https://github.com/javagrowing/JGrowing/blob/master/%E5%88%86%E6%9E%90%E8%AE%BE%E8%AE%A1/%E4%BD%A0%E7%9A%84%E9%A1%B9%E7%9B%AE%E5%BA%94%E8%AF%A5%E5%A6%82%E4%BD%95%E5%88%86%E5%B1%82.md

阿里巴巴Java开发手册(华山版)

https://github.com/alibaba/p3c/blob/master/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Java%E5%BC%80%E5%8F%91%E6%89%8B%E5%86%8C%EF%BC%88%E5%8D%8E%E5%B1%B1%E7%89%88%EF%BC%89.pdf


5年老码农的代码规范,值得学习!Java面试那些事儿推荐搜索
java
idea
面试



 往期推荐 

🔗




 

点击阅读原文,获得更多精彩内容