代码评审
代码评审
总体问题
强制:未安装alibaba代码规范插件或者未处理插件所提示的警告信息,比如文件头部没有@auther信息
强制:代码中输出必须使用logger框架,不允许使用System.out或者System.err
建议:spring基于field的注入已经不建议使用,尽量使用setter方式注入
建议:查询参数的DTO以Query结尾,比如UserQuery而不是使用UserParamsDTO,参考阿里DTO定义规范
强制:新增和更新判断依据是id == null || id == 0,id不可能小于0,所以不要做小于0的判断
强制:所有的Collection.size()不可能小于0,所以只需要做非空判断就可以
强制:所有循环外面的Collection.size() > 0判断去掉,没有意义,禁止出现下面的代码
if (list.size() > 0) { for (int i = 0; i< list.size(); i++) { // do something }}
强制:所有StringUtils只使用commons-lang或者spring的,不要使用其它厂商的,比如dubbo
强制:java文件中不允许出现没用的import引入,手动或者使用idea快捷键删除
强制:不允许出现先new对象,然后接着把方法返回值赋给这个对象,比如以下代码
List list = new ArrayList();list = service.findAll();
强制:使用枚举的valueOf()方法时,必须catch异常
建议:服务中private方法也要加上相应的注释
强制:如果服务抛异常,不允许直接抛Exception,要自己在-api中定义Exception或者调用别人定义好的Exception
强制:实体中除了id以外,其它属性不允许使用简单类型具体问题
common项目
包的命名规范common项目中包名禁止出来iot
business-api和business-provider中的iot去掉
禁止出现直接以impl命名的包,比如custome-provider项目中的com.toplion.customer.impl
com.toplion.iot.business.service.BusinessServiceImpldemo方法未删除也未加todo标记
createIdentity方法中,xpath设置先声明变量再进行设置
department-provider中有两个Department对象,对应的表名都是sys_department,为什么?
com.toplion.iot.department.service.DepartmentServiceImplsave方法和delete方法,对于已经明确的枚举类型,禁止使用valueOf()进行转换
Unit表中xpath的长度可能不够
user-provider项目User表中对应的accountId是uuid,所以类型是String,长度是36;民族和政治面貌命名有问题
User表与我设计的用户表有些字段对应不上
com.toplion.user.unit.service.UserUnitServiceImplcountByUnitAndUserType方法iot项目
calculate-provider项目中,很多属性是枚举,数据库设计时用的tinyint,需要修改