总结了一些在开发java项目中的代码规范。
具体请参考阿里巴巴开发手册https://github.com/alibaba/p3c
一、 代码注释:
1、 包括类名,方法名称等都使用统一注释模版。
/**
* @author yxw
* @date 2020/8/20 14:08
* @param 描述:delBrand 删除页面信息
* @return
*/
某个方法中出现大量代码(单个方法代码超过300行),建议对方法进行抽象成多个方法。
3、 代码块与块之间,最好填写注释,方便后期维护。
二、 方法命名规则:
、model层
、常规model对象由mybatis生成,
、对数据库层面的model进行扩展,统一存放在ext包下面,类名以Ext结尾。
、纯返回给前端展示或者查询条件用vo,对后台数据库查询出来后,新建对象重新组装的。比如树形接口的对象
、多个对象中属性的封装用dto,比如modelA用了3个字段,modelB用了2个字段,modelC用了4个字段
e、不要在model层中做任何的逻辑操作
、service层
、所有接口名称都以Service结尾
b、捕获每个调用dao层的异常,抛出正确的异常
、方法名格式:
添加: add* 例如 Long addPubEmp(PubEmp pubEmp);
public ResponeModel addPubEmp(PubEmp pubEmp)
删除:del* 例如void delPubEmp(Long pubEmpId);
例如void updatePubEmp(PubEmp pubEmp);
查询单体:get* 例如 getPubEmpById,getAllEmp
查询List: find* 例如 findAllPubEmp
单条件查询其字段字符不超过1024使用地址栏传参数
@ApiOperation(value = "删除页面信息")
@ApiResponses(@ApiResponse(code = 0,message ="删除页面信息成功" ))
@DeleteMapping("/{id}")
public ResponeModel delBrand(@PathVariable("id") Integer id)
、dao层
、mybatis 包下都以Mapper结尾,可不写public
、mybatis包下方法命名
新增:insert* 例如:int insert(PubEmp record);
PubEmp addPubEmp(PubEmp pubEmp);
删除:delete* 例如:int deleteByPrimaryKey(Long id);
例如:int updateByPrimaryKey(PubEmp record);
例如: selectByPrimaryKey 当返回值是单个对象时用select*
例如:findAll 当返回值是list时用 find*
类名中的方法名与xml中的id一一对应,这里主要和mybatis的规范契合
、provider层
Controller包下都以Controller结尾
Controller方法内部代码不要超过60行
每个Controller文件的都要使用@RestController和@RequestMapping注解而不是@Controller和@ResponseBody
@RestController
@RequestMapping("/SysUser")
数据访问入口
保存: 统一url入口 /add* post请求
方法名称: add*
@PostMapping("/insertBrandPage")
public ResponeModel insertBrandPage(BrandPage brandPage)
修改: 统一url入口 /update*
方法名称: update * put请求
删除: url入口 / delete* delete请求
方法名称:delete*
查询单体: url入口 /get* get请求
查询list: url入口 /find* post请求
数据访问入口,当只有一个请求类型是一样的接口时 url入口写 /
@PostMapping("/") // 新增信息接口
访问路径:一般情况和方法名一致,如遇到方法名特别长的,可以简化处理。
三、 驼峰命名
、所有类名用大驼峰
UserNameById.java
、所有方法名用小驼峰
userName
、所有参数用小驼峰
control、service、dao、层的包名和文件文件要对应,不然可能会出现映射失败的错误
四、 数据库
1.数据表使用下划线命名
2.每个字段应该写明具体描述
3.每个应最少要有主键、创建人、创建时间、编辑人、编辑时间字段
4.数据库除主键外不要做数据校验
5.时间应该由程序传入
6.数据库不应该有物流约束