工作上的编码规约记录(日常更新中)

一、类注释 统一成
描述-作者-日期
/**
 * ${description}
 * @author wuhuc
 * @date ${DATE} ${TIME}
 */
这样自己新建的类就会有对应的注解,方便以后出问题了找到对应的编码人员

二、注入尽量使用@Autowired,优先使用Autowired,尽量少使用@Resource。
两者区别: @Autowired按byType自动注入,而@Resource默认按 byName自动注入(具体区别可以百度)

三、只使用@PostMapping,就可以了,不用再同时使用@RequestMapping注解。
@PostMapping 比 @RequestMapping(method = RequestMethod.POST)更加优雅

四、CompanyService不能乱加注解@Respository
@Respository("/name")用于存储层bean
@Service("/name")用于业务层bean
@Controller("/name")用于展示层bean
他们的功能是一样的,只是名字不同用于区分层级,类似的还有@Component

五、数据库传递一个int值,在服务接口实现类中做判断如果有值就进行返回,没有值就进行不返回成功。
代码提示出现魔法值,需要在constant常量类中写
一般不直接使用硬编码的方式

八、Controller/Service/DAO层方法命名规约
1) 获取单个对象的方法用get做前缀,getUser
2) 获取多个对象的方法用list做前缀,复数形式结尾  如: listUsers
3) 分页获取多个对象的方法用page做前缀,复数形式结尾  如: pageUsers
4) 获取统计值的方法用count做前缀。  countUser
5) 插入的方法用save/insert做前缀,批量插入 batchInsert。 insertUser   batchInsertUser
6) 删除的方法用remove/delete做前缀。        deleteUser
7) 修改的方法用update做前缀。        updateUser
领域模型命名规约
1) 数据对象:xxxDO,xxx即为数据表名。(不常用)
目前一般使用entity包名 来放数据对象,里面的实体类直接写表名即可(常用)
2) 数据传输对象:xxxDTO,xxx为业务领域相关的名称。(常用)
3) 展示对象:xxxVO,xxx一般为网页名称。(不常用)
4) POJO是DO/DTO/BO/VO的统称,禁止命名成xxxPOJO。(不常用)

Restful API风格需要去看,不用在@PostMapping中再写/addDict,可以通过请求类型定位。例如@PostMapping(/Dict)
Restful API风格的简单介绍如下:
注意: URL中只能有名词,不能出现动词。这是因为在REST要求对资源的操作由HTTP 方法给出,而方法是由HTTP 请求报文头部给出的,自然不需要在URL中暴露操作方式

image

分页如果是page或size不能用/{pageNo}/{pageNum},需要写成?pageNo=xx的形式。
例如: @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo,
     @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize
这样默认指定分页参数

九、数据表中的创建时间:数据库设置默认值,创建的时候不写更新时间,创建不算更新。

十、删除做的是逻辑删除不是物理删除。(这个很重要,但是在开发中我们一般会忘记)

实体类中加上@ApiModelProperty(valve="参数注解")。
加上这个参数,方便前端在使用swagger的时候明白参数逇意思,也方便后面的代码维护(很重要,但是一般会忘记写)

分页参数不能写在url之中,写在url中的只能是写主键。
这个规范有待商榷,我感觉分页参数在url中传递没问题,比如百度搜索的分页参数就是url中传递

四、 注释中的return返回可以不用写代码的返回最好是中文描述返回什么。
一般中文描述该方法返回的数据是啥子,方便以后进行维护(很重要,但是一般会忘记)

五、 使用copyProperties如果类型不一样的话是不能生效的,如果使用就必须要类型一致。
这个是BeanUtils里面的方法,非常好用

六、 其它的请求类不需要@TableId,他是与@TableName挂钩的。
这个的意思比较模糊,不好理解
这个注解是MyBatis-Plus里面的,用于实体类与数据库主键不同时映射主键
@TableId 主键专属注解
比如数据中的表中的字段是id,但是实体类是userId,那么就需要在userId上打上这个注解
设置主键映射 value映射主键字段的名字 type 设置主键类型 主键的生成策略 (圈起来的重要)

遇到需要处理异常的地方,推荐使用全局异常,不用try..catch
try..catch代码量比较多,不优雅









posted @ 2021-07-14 18:55  小猫爱哭鬼  阅读(48)  评论(0编辑  收藏  举报