文档章节

7 个 code review 的技巧(转)

哥特复心
 哥特复心
发布于 2017/05/07 22:06
字数 1121
阅读 22
收藏 0

1.先确定 code review 的目标优先级

在 code review 之前先和你的团队成员明确 code review 中事项的优先级。 作者认为 code review 中应该做的事: 熟悉同事在编程时的思考方式,这样其余同事以后如果有需要就可以更轻松、快速的修改代码。 向同事介绍修改了哪些文件,增加了什么样的功能,这样在问题出现时,可以保证至少有两个人可以帮助诊断、解决问题。 不建议在 code review 中做的事: 找 bug。自动化测试、运行程序要比几个人坐着看代码有效率多了。 检查代码规范。现在的 IDE 和编辑器都有自动规范代码的工具,为什么还要在这方面浪费人力呢?

2.把程序跑起来

读其实是一种很不自然的和代码交互的方式。仅仅靠读代码来找 bug 效率实在不能算高,要知道计算机能比你的大脑更好地运行代码。 把程序运行起来,亲自试一试,或许你会有一些和他们测试时不同的操作,发现一些他们遗漏的问题。 并且现在的 IDE 中断点调试,都能够很详细的显示运行时的程序数据,这能帮助你更容易的理解这段代码是如何运行的。

3.明确方法的调用层次

作者发现很多人谈起 code review 的第一印象就是一堆人坐在一个电脑面前一行一行的看代码。但这么做其实效率是很低的,除非你的经验非常丰富,否则真的不建议就靠一双眼睛和你的大脑来做 code review。用工具明确方法的调用层次,能帮助你更有效的梳理代码逻辑。

4.尽可能及时的进行 code review

当你收到别人的 code review 邀请时,尽量第一时间就开始。因为这时作者的记忆是最清晰的,并且通常会对你的及时反馈心怀感激,这种正面情绪对于 code review 是非常有帮助的。 如果你觉得自己在面对 code review 时有困难的话,作者在这里推荐了两个方法: 事先设置一个时限,比如半小时。也就是在你的第一次 review 中,先花半个小时理解变动的代码,写下自己的问题。如果在这个时间范围内,你不能确定代码变动是否没有问题,把你的想法和问题先发给作者,之后再确定一个时间进一步的 review。 在你的机器上保留两个独立的仓库。一个用于你自己的修改,另一个用于 review。这样你和作者之间的修改就能够保持彼此独立。

5.在你读代码之前,先想想自己会怎么做

先读一下功能说明,思考下如果是自己来可能会怎么做,之后再查看作者实际做出的修改。如果有和你想得不一样的地方,就可以和作者进行交流,讨论清楚为什么。这样做能使得你们两个都得到成长,还能提高 code review 的效率。

6.在实际的开发环境中 review

现在的 code review 早就不是光用眼睛看啦,各种强大的 IDE 完全可以成为我们的一大助力。善用 IDE 的力量。

7.不要吝啬你的赞扬,除非你能证明那里确实有一个 bug

每个人的内心深处都是期待被别人称赞的,因此在 code review 开始的时候不要老是揪着变量命名、代码重复之类的问题。先集中注意力在真正重要的地方,给作者一个舒服、放松的心态(通常刚开始 code review 的时候作者是会很紧张的)。这样他们也就会乐于接受你对于代码风格等方面的建议了。: ) 作者:Hevin https://zhuanlan.zhihu.com/p/24562689 https://blog.asana.com/2016/12/7-ways-to-uplevel-your-code-review-skills/?utm_source=wanqu.co&utm_campaign=Wanqu+Daily&utm_medium=website

本文转载自:

共有 人打赏支持
哥特复心
粉丝 109
博文 68
码字总数 40593
作品 0
长沙
高级程序员
私信 提问
KDevelop 5.3 发布,新增 Clazy 分析器插件

KDevelop 5.3 发布了,KDevelop-Project 诞生于 1998 年,其目的是为 KDE 提供一个易用的 IDE,它支持多种语言,是一个用于 C、C ++、Python、JavaScript 和 PHP 的跨平台 IDE。 此版本主要更...

h4cd
11/16
451
2
开源学习好帮手:最棒的50个开源博客

开源软件由庞大的社区提供支持,这个充满活力的社区造就了一批一流的博客。它们涵盖了从开源新闻,到最新发布的教程和黑客技巧的各个方面。 我们精选出这些博客,因为他们精通相关专业,不仅...

吴宝兴
2010/07/13
723
0
什么是Code Review

Code Review 是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。 本文通过对Code Review的一些概念和经验的探讨,就如何进行C...

长平狐
2013/01/06
261
0
疑Google员工把8w行Python项目用4w行Java重写了

疑Google员工把8w行Python项目用4w行Java重写了 看发帖IP是亮点。后面后贴的一堆喷子。 发信人: daluobu (阿土仔), 信区: Python 标 题: 终于把一个8万行的Python程序用Java重写了 发信站: 水...

Qbase
2013/12/08
25
0
AEAI CRM V1.6.0 升级说明,开源客户关系管理系统

AEAI CRM V1.6.0 升级说明: 1 升级说明 AEAI CRM v1.6是基于AEAI DP v3.8.0_20170228进行打包部署的,本次AEAI CRM升级内容主要是针对数通畅联销售对客户拜访任务管理进行的一次全面的升级,...

数通畅联
2017/03/31
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

Yearning基于Inception的开源SQL审核平台

基础环境: python3 nodejs vuejs mysql python-ldap pymysql mysql 新建数据库 create database Yearning DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; Navicat导入初始化数据 : ......

以谁为师
11分钟前
0
0
flutter Expanded用法

使用的地方:一个分类,类似京东的,左右两边都可以滑动 Widget build(BuildContext context) { return Row(children: [ Column( children: <Widget>[ Ex......

大灰狼wow
16分钟前
2
0
Java8 Map中新增的方法使用总结

前言 得益于 Java 8 的 default 方法特性,Java 8 对 Map 增加了不少实用的默认方法,像 getOrDefault, forEach, replace, replaceAll, putIfAbsent, remove(key, value), computeIfPresent,......

kaixin_code
26分钟前
1
0
@TransactionConfiguration

@TransactionConfiguration过时与替代写法 @TransactionConfiguration 替代写法

miaojiangmin
28分钟前
0
0
浅谈Vue响应式(数组变异方法)

很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法。 看来想让女...

开元中国2015
29分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部