2023.7.24 公开代码review总结
1、Controller层只干三件事、参数处理、调用service接口、返回处理
2、if嵌套使用Option替换
3、多个入参封装为对象
4、多个参数判断空,可以使用StringUtils.isAnyBlank替换 apache Common 升到版本3.8(jdk1.7)
5、数据库查询是否有数据存在使用count查询返回数量,不要查询所有数据结果,避免资源浪费
6、返回集合用StringUtils.join
7、代码排版
8、for循环里查询数据库操作,严令禁止,耗费数据库资源
9、变量命名需要有意义,将类型或范围信息添加到名称只会增加解读负担
10、常量要取有意义的名字,有业务含义的名称
11、三元表达式只用在仅有一行代码中
12、前端css样式使用自定义Class去绘制
2023.7.5 公开代码review总结
1、通过继承、泛型方式减少重复代码,方便后期维护
2、调用外部接口时,返回任务,在事务结束后单独通过消息队列线程异步池消费
3、代码规范新增:使用包装类型的parseXXX 方法时,必须说明其可能抛出的异常是不是预期内的。
4、对于数组内元素操作时需要定义可理解的变量名方便理解、并添加注释
5、有限范围的常量集合应该使用枚举
6、任何从返回集合中只获取一个元素的代码,必须说明理由(再次强调),一般情况禁止此类方式返回
7、代码中使用流程环节ID、流程模板编号时定义可理解的英文变量名
8、获取字符串分割最后一个元素StringUtils.substringAfterLast
9、数组取最大值最小值考虑Stream流max min终结符
10、初始化Collection集合时不要传初始化大小容量
11、代码中不要炫技,写一些正常开发看不懂的代码
2023.6.28 公开代码review总结
1、布尔值方法返回不要通过!返回,直接返回 ObjectUtils.isNotEmpty();
2、任何从返回集合中只获取一个元素的代码,必须说明理由(再次强调),一般情况禁止此类方式返回
3、if判断else if写法
4、相同类似的方法,考虑通过泛型,入参封装一个方法,减少代码冗余
5、字符串拼接禁止直接使用String,使用StringBuilder拼接
6、部分涉及算法的代码需要解释清楚为什么这样写,这样写的目的是什么
2023.6.7 公开代码review总结
1、主管安排团队成员每人(编码能力需提升的开发)看一本适合它的正规书,以便达到工作的基础能力要求。给出人员和书籍名单,作为工作成果检查。
2、前端js中使用连续的await调用,必须说明其是否必须顺序执行;不需要的通常使用异步Promise.all
3、任何从返回集合中只获取一个元素的代码,必须说明理由
4、代码注释写明白业务,起码要把自己能说服(强调多次)
5、禁止在代码中通过注释区分开发环境、生产环境(很重要,引起了一级故障)
6、代码排版错乱,缩进违规
7、对于不需要多次使用的值,直接使用,不需要定义变量使用
8、前端高阶函数的使用,避免重复函数,使用场景: f = mg;f = ma;g(m) = ma;g(f(x)) = ma = f(x)a;g.f(x) (g.f)(x);g.compose(f)
9、if else 使用如果else里代码很长,if的内容要提前返回,不使用else
2023.5.31 公开代码review总结
1、实在无法使用final的场景下可以不用,大部分情况还是要加final
2、日志保留现场再次强调
3、查询时对入参非空校验
4、页面渲染处理HTML转义,避免XSS攻击安全漏洞
5、是否存在has业务字段不允许赋值
6、代码过长时考虑封装函数,行数过长、列数过长都算过长需要调整,便于代码阅读
7、命名规范,不允许存在中文拼音
8、业务代码注释要写清楚业务
9、多个if else 嵌套考虑使用枚举类
10、凡是看到flag互斥相关的逻辑判断,优先考虑位运算
11、调用远程分页接口时考虑流stream.iterator
12、尽量使用apache官方工具包,使用时统一,不要混合使用其他三方工具包
13、一个类中反复查询同一个数据时,通过缓存类查询,减少重复访问,提升性能
2023.5.24 公开代码review总结
1、日志保留现场
2、注释要写清楚业务,有同理心,让别人能看懂
3、推荐使用mapstruct Mapper
4、对象空判断使用Objects.isNull
5、对象参数构建builder
6、使用File.separtor考虑部署环境问题
7、涉及数据库操作添加事务
8、新人写代码不去理解,照抄(CTO李舟重点强调)