java后台开发代码规范
总结了一些在开发java项目中的代码规范。
具体请参考阿里巴巴开发手册https://github.com/alibaba/p3c
一、 代码注释:
1、 包括类名,方法名称等都使用统一注释模版。
/** * @author yxw * @date 2020/8/20 14:08 * @param 描述:delBrand 删除页面信息 * @return */
2、 某个方法中出现大量代码(单个方法代码超过300行),建议对方法进行抽象成多个方法。
3、 代码块与块之间,最好填写注释,方便后期维护。
注释模版参考资料:https://www.cnblogs.com/yanh0606/p/11990863.html
二、 方法命名规则:
1、model层
a、常规model对象由mybatis生成,
b、对数据库层面的model进行扩展,统一存放在ext包下面,类名以Ext结尾。
c、纯返回给前端展示或者查询条件用vo,对后台数据库查询出来后,新建对象重新组装的。比如树形接口的对象
d、多个对象中属性的封装用dto,比如modelA用了3个字段,modelB用了2个字段,modelC用了4个字段
e、不要在model层中做任何的逻辑操作
2、service层
a、所有接口名称都以Service结尾
b、捕获每个调用dao层的异常,抛出正确的异常
c、方法名格式:
添加: add* 例如 Long addPubEmp(PubEmp pubEmp);
public ResponeModel addPubEmp(PubEmp pubEmp)
删除:del* 例如void delPubEmp(Long pubEmpId);
修改:update* 例如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)
3、dao层
a、mybatis 包下都以Mapper结尾,可不写public
b、mybatis包下方法命名
新增:insert* 例如:int insert(PubEmp record);
PubEmp addPubEmp(PubEmp pubEmp);
删除:delete* 例如:int deleteByPrimaryKey(Long id);
修改:update* 例如:int updateByPrimaryKey(PubEmp record);
查询:select* 例如: selectByPrimaryKey 当返回值是单个对象时用select*
find* 例如:findAll 当返回值是list时用 find*
类名中的方法名与xml中的id一一对应,这里主要和mybatis的规范契合
4、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("/") // 新增信息接口
Url访问路径:一般情况和方法名一致,如遇到方法名特别长的,可以简化处理。
三、 驼峰命名
1、所有类名用大驼峰
UserNameById.java
2、所有方法名用小驼峰
userName
3、所有参数用小驼峰
4、control、service、dao、层的包名和文件文件要对应,不然可能会出现映射失败的错误
四、 数据库
1.数据表使用下划线命名
2.每个字段应该写明具体描述
3.每个应最少要有主键、创建人、创建时间、编辑人、编辑时间字段
4.数据库除主键外不要做数据校验
5.时间应该由程序传入
6.数据库不应该有物流约束
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了