CodeReview规范
CodeReview是一个公司技术氛围的标志,也是一个团队氛围的标志。优秀的团队,要经常的进行CR,来保障团队的讨论问题、解决问题的氛围。
CodeReview的目标
提高代码质量
当阅读别人的代码,和自己的代码被别人看的时候,才是自己代码质量提高的最好的方式。
促进团队学习共享
每个人都有自己思想和习惯,理解他人的思想和习惯才能拓宽自己眼界和认知。
业务理解与交流
通过别人的代码,了解别人做的相关业务,可以有效避免闭门造车。
CodeReview的原则
人人参与
不同的人参与,有不同的想法,也会有不同的发现。更是在这个过程中形成规范,让大家达成一致。
经常参与
随时进行Review,避免Review的代码量太大,或是不及时导致修复的周期增长。
积累沉淀规范
每次review后都有所沉淀,形成代码规范,避免以后重新犯同样的问题。
无需太正式
主要是一个学习交流的过程,不要有太大压力。
尽量不要太久
太久人的精力容易发散,效果会越来越差。
CodeReview的方法
完整性检查
代码功能与产品设计是否完整,有没有缺失?提交的代码是否完整?
一致性检查
代码逻辑与设计文档的方案是否一致?CommitLog与提交代码是否一致?代码风格是否一致?有没有格式化?
正确性检查
代码逻辑是否正确?中间是不是有bug?
可理解性检查
代码是否易于理解?是否有注释?是否抽离了方法?调用链路是否清晰?代码逻辑是否清晰?变量名、方法名是否可以理解?
健壮性检查
是否会有空指针?是否会有边界问题?是否会有异常?是否会有越界?是否会有并发?是否会有性能问题?
是否易于维护和拓展?
安全问题
是否有安全漏洞?是否有SQL注入?是否有参数校验?是否有限流熔断?是否有降级策略?
CodeReview的步骤
每个公司的CodeReview的流程都不太相同,因为开发模式不太相同。有的是分支开发,有的是主干开发。 有的是每次commit的时候都Review,有的是提测的时候整体Review。有的是随时Review,有的是定时Review。
编写者整体介绍业务背景以及代码结构
审核者提出疑问
编写者展示自己的代码
审核者根据规范和思考,发现隐藏的问题
准确记录需要确认和改进的问题
事后安排确认与修复
注意:一定要注意氛围,不能把审查会搞成批判会,这样会影响相关人员的积极性。最后一定要给予编写者正面的评价。
CodeReview常见的问题
- 业务跑得这么快,没时间 Code Review
这是一个很大的谎言,不要为自己的丑代码找华丽的借口,没有时间好好CR,总有时间焦头烂额地处理故障和投诉。
态度出现问题,搞成批斗会
编写者虚心接受,评审者避免个人主义。最后有个主持人把控整个氛围和节奏,避免团队内言语冲突。
CodeReview的工具
阿里p3c
代码规范检查插件p3c,是根据《阿里巴巴Java开发手册》转化而成的自动化插件。
Sonar
Sonar是一个用于代码质量管理的开源平台,用于管理源代码的质量。
← CommitLog规范 REST接口规范 →