文档章节

7 个 code review 的技巧(转)

哥特复心
 哥特复心
发布于 2017/05/07 22:06
字数 1121
阅读 21
收藏 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
长沙
高级程序员
开源学习好帮手:最棒的50个开源博客

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

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

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

长平狐
2013/01/06
178
0
AEAI CRM V1.6.0 升级说明,开源客户关系管理系统

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

数通畅联
2017/03/31
987
0
追求代码质量 —— 闲谈团队的代码质量

定义代码质量 首先当你开始意识到项目里代码质量差的时候,恭喜你已经有了代码审美。这是推进编程水平的重要的一步。很显然,如果你不知道什么是差的代码,你就写不出好的代码。写不出好的代...

局长
2017/09/18
1K
7
Windows安装gerrit工具方法

安装Python,python版本最好选择稳定版本,已验证版本2.7.11 [python2.7.11以上版本自带安装了pip,可以省略步骤4至步骤5] 安装Python时,指定的安装路径不能含有空格(已知的Pip Bug) 安装完...

JennerLuo
2016/03/11
531
0

没有更多内容

加载失败,请刷新页面

加载更多

Shiro | 实现权限验证完整版

写在前面的话 提及权限,就会想到安全,是一个十分棘手的话题。这里只是作为学校Shiro的一个记录,而不是,权限就应该这样设计之类的。 Shiro框架 1、Shiro是基于Apache开源的强大灵活的开源...

冯文议
今天
1
0
linux 系统的运行级别

运行级别 运行级别 | 含义 0 关机 1 单用户模式,可以想象为windows 的安全模式,主要用于修复系统 2 不完全的命令模式,不含NFS服务 3 完全的命令行模式,就是标准的字符界面 4 系统保留 5 ...

Linux学习笔记
今天
2
0
学习设计模式——命令模式

任何模式的出现,都是为了解决一些特定的场景的耦合问题,以达到对修改封闭,对扩展开放的效果。命令模式也不例外: 命令模式是为了解决命令的请求者和命令的实现者之间的耦合关系。 解决了这...

江左煤郎
今天
3
0
字典树收集(非线程安全,后续做线程安全改进)

将500W个单词放进一个数据结构进行存储,然后进行快速比对,判断一个单词是不是这个500W单词之中的;来了一个单词前缀,给出500w个单词中有多少个单词是该前缀. 1、这个需求首先需要设计好数据结...

算法之名
昨天
15
0
GRASP设计模式

此文参考了这篇博客,建议读者阅读原文。 面向对象(Object-Oriented,OO)是当下软件开发的主流方法。在OO分析与设计中,我们首先从问题领域中抽象出领域模型,在领域模型中以适当的粒度归纳...

克虏伯
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部