【Java】【项目规范】Java项目编码规范

  • 不管是数据库,还是代码变量,尽量使用简短,常见,准确,专业的单词,方便他人理解
  • 英文不好的,在命名时应当多花时间百度,尤其不能自己制造不存在的单词
  • 单词禁止缩写,除非是单词特别长且有公认缩写形式的(比如connection->conn,department->dept),自己起的缩写,很可能让别人无法理解
  • 数据库字段采用下划线命名法,单词之间必须用下划线隔开,简短单词也要遵循此原则,比如user_id不能写成userid
  • 代码中的变量名,应当和数据库中的字段名完全一致,由下划线转驼峰命名,保持【客户端】【数据库】【服务端】单词一致,方便代码自动生成和解析,前后端工程师在协作过程中,也不用在字段名这种小事情上浪费时间
  • 多表字段要一致,比如用户表中人的id和部门表中人的id,都得是user_id,不能起两个不同的名字,名称不一致会造成理解混乱
  • 有实际意义的id字段,要使用完整单词,比如用户表的id叫user_id,部门表的id叫dept_id,这样当后台返回给前端时,如果既有用户id,又有部门id,仍然可以直接使用数据库字段名返回,前端也可以自动解析
  • 在现代化的开发当中,实体类是由数据库框架或插件一键生成的,数据库查询代码也是框架一键生成或封装好的,前端向后端发出的请求参数可以由框架一键转换为实体类,后端返回给前端的数据是由框架一键转换为ResponseBody,前端接收数据也是由框架一键将字符串转为实体类,APP将后台数据存储到本地数据库也是由框架一键完成,而这些全自动化的前提就是命名一致。如果命名不一致,那么每一个步骤,都需要手动去设置,前后端在协作过程中就有许多地方需要相互确认。可见,数据库和代码命名规范,不仅是为了看得舒服,已经直接影响到代码复杂度,前后端协作的复杂度,代码转手的复杂度。
  • 在不影响阅读和理解的前提下,命名时要把具有模块或分类性质的单词写在前面。比如在数据库中,设备信息,分享设备信息,设备日志,可以命名为device_info,device_share,device_log,这样同类表在排序上是集中在一块的,方便查找管理。在Java代码中也类似,GetDeviceController,EditDeviceController,DeleteDeviceController应该写成DeviceGetController,DeviceEditController,DeviceDeleteController,否则同样是设备的功能,在排序上就会分散在各个地方,不方便查找。
  • 实体类的Getter,Setter可以通过Lombok的注解生成,不但可以节省时间,而且可以保持代码整洁,方便修改
  • Mybatis的基本增删改查,直接通过MybatisPlus框架即可实现,Xml中只需编写少许复杂sql即可
  • Controller返回的数据,统一使用Spring的ResponseEntity,或者公司统一定制的格式,保证所有Http接口返回格式一致
  • Controller必须包含异常处理,必须处理常见业务异常情况,对于请求参数错误或不可预期原因造成的异常,要统一处理,不能因为报错,就返回各种不一样格式的信息,这样会让前端的数据解析,异常处理,信息提示变得非常复杂。

猜你喜欢

转载自blog.csdn.net/u013718730/article/details/88823486