Learn And Life.

关于code review

什么样的代码才是好的代码?代码review需要注意哪些细节?

1.代码规范,每个公司都有自己的一个代码规范,比如:

1
2
3
4
5
6
7
8
9
1) 命名规范?
2) 换行还是空行?
3) Tab还是空格?
4) 等号括号两边是否使用空格?
5) 注释合理?
6) 功能结构单一,函数和类不能太长,要具有模块性,单一职责?
7) 单元测试,测试用例覆盖是否全面?
8) git使用是否规范?
......

2.CodeReview-checklist,每个团队或者个人都应该建立自己的checklist,在每次提交代码之前,都过一遍,比如:

1
2
3
4
5
1) 什么写法可能导致性能低下?
2) 哪个接口或者函数要慎用?
3) 哪些设计方式需要规避?
3) 什么习惯容易引发内存泄漏?
.....

3.影响范围评估

1
2
3
4
5
6
1) 配置修改?各个环境是否兼容?
2) 全局变量和全局函数修改?
3) 是否存在数据安全和一致性问题?
4) 容量评估?处理能力评估?是否会引起阻塞?
5) 梳理业务,此修改是否全面,是否修改了所有相关的业务,还是只是修改了一部分?
......

4.design review

1
2
3
4
5
6
1) 实现是否符合预期设计?
2) 是否需要压测?
3) 独立部署还是分开部署?是否需要进行容量评估?
4)是否需要部署任务脚本?
5) 是否需要申请独立域名?
.....

5.性能评估

1
2
3
4
1) 关注for循环,关注批量处理,能合就合,能简就简,不能将就
2) 关注索引,是否使用了索引
3) 评估业务模型,是cpu密集型还是io密集型,简化设计,做好测试
.....

6.review级别

1
2
3
4
5
6
7
1)可编译
2)可运行
3)可测试
4)可读
5)可维护
6)可重用
7)可扩展

7.review工具

1
2
3
1) Phabricator
2) Gerrit
3) Gitlab

8.需求review

1
2
3
4
5
1) 分析需求
2) 需求是否合理
3) 需求是否紧急
4) 大需求?小需求?
5) 拒绝和简化需求

代码review是一个关注自己成长和产品质量的一个问题,每个程序员都应该引起重视,把不好的习惯扼杀掉,减少了bug,同时也能得到同事的认可,也能让自己给别人找找茬,不要让自己累成牲口,停下来想想,问一下自己,自己成为牲口的原因,是不是就是因为自己做事时候像就牲口一样思考?