7 个 code review 的技巧(转)

Code review,中文译为「代码审查」,是指对代码进行系统性的审查,通常是和其他开发者来共同进行。这里作者就讲了在 Asana 中他们是怎么来做代码审查的。

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

每周更新关注:http://weibo.com/hanjunqiang  新浪微博!手机加iOS开发者交流QQ群: 446310206

时间: 2024-10-25 18:34:51

7 个 code review 的技巧(转)的相关文章

Code Review 理论与实战

一. Code Review 简介 1 Code Review 的目的 凡事知其然还要知其所以然 , 我们首先需要知道什么是 Code Review 和我们使用它的目的是什么. Code Review 是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码,测试过程和注释进行检查. Code Review 主要用来在软件工程过程中改进代码质量,通过 Code Review 可以达到如下目的: 在项目早期就能够发现代码中的BUG 帮助初级开发人员学习高级开发人员的经验,达到知识

Code Review代码审查的思路

1.关于Code Review 1.1 Code Review的目的 Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的目的: (1)在项目早期就能够发现代码中的BUG (2)帮助初级开发人员学习高级开发人员的经验,达到知识共享 (3)避免开发人员犯一些很常见,很普通的错误 (4)保证项目组人员的良好沟通 (5)项目或产品的代码更容易维护 1.2 Code Review的前提 进入Code Review需要检查的条件如下: (1)Code Re

敏捷软件开发实践-Code Review Process

介绍: 在敏捷软件开发中,从代码的产生速度上来看,要比传统Waterfall产生速度高很多.因为我们把时间安排的更加紧凑了.那么这么多的代码,如何能保证这些代码质量呢?很多人可能直接想到静态代码检测工具.没错,那些是可以定义一个代码检查规则来确保代码的质量,但是那个仅仅是从语言角度,那么逻辑是否已经最优化了?可重用性是否已经优化到极致了?这些是静态代码工具不能完成的,所以我们需要Code Review 实现方式: 对于已经在项目组很久的人来说: 虽然传统的code review就是把代码从仓库c

Code Review for Vue 2.0 Preview

是的!Vue 2.0 发布了! Vue 2.0 preview 仓库在此 首先,当我第一次看到 Vue 2.0 的真面目的时候,我的内心是非常激动的 Demo 来个简单的 demo,首先把 dist/vue.js 导入到一个空白的网页里,然后写: 当然,在大家阅读下面所有的内容之前,先想象一下,这是一个运行时 min+gzip 后只有 12kb 大小的库 <script src="./dist/vue.js"></script> <div id="

工程中Java Code Review发现的问题汇总

工程中Java Code Review发现的问题汇总 概述 最近对团队内近期开发的一些Java web工程进行了Code Review,这些Code主要是需要在多个工程中复用的基础组件,Java代码为主.审核中发现了一些编码问题(暂时不考虑设计模式.架构层面的),这里进行一下汇总总结. 问题列表 注释 普通的程序员最痛恨接手或使用没有文档的代码,而程序员一般又不喜欢些文档,代码注释是文档的一种,在Code Review中发现工具扫描时注释率很高,但是真正进去去看,注释率极低. 接口一定要有详细的

聊Code review(上)

篇前的话:本文主要关注互联网应用程序如何做Code review(代码审查)方面.上篇主要描述什么是code review, 为什么要去做,主要包含哪些内容:下篇,主要讲如何组织人员做代码review,对程序员,以及团队有什么影响,重点在下篇. 从事过几年程序开发的猿猿们(注1),听过.或抱怨过: "某某系统的代码太烂"或"某某人的代码太烂".本文着重说应用软件的code review,将从这些问题去探讨:为什么要做代码review?如何去做代码review,应该注

不重视 TDD 与 Code Review 的代价

近些年来,越来越多的人开始向我咨询测试驱动开发(TDD)的好处.所谓 TDD,就是在将代码进行部署之前,利用各种自动化测试来确保代码能够正常工作.在进行测试的时候,你需要寻找测试失败的地方,然后不断修改,必要的时候还需要对代码进行重写.实践证明,TDD 是软件开发过程中必不可少的一环.而且它还能够帮助企业和员工节省大量的时间. 近些年来,越来越多的人开始向我咨询测试驱动开发(TDD)的好处.所谓 TDD,就是在将代码进行部署之前,利用各种自动化测试来确保代码能够正常工作.在进行测试的时候,你需要

OGRE Code Review HOWTO

Table of Contents Introduction The Process What to Look For Style Design Guidelines OGRE Specific Guidelines Introduction The time has come for all good men to come to the aid of their favorite rendering engine. The OGRE Project needs you to help wit

iOS 代码审查:宽松的指导方针(iOS Code Review: Loose Guidelines)

iOS 代码审查:宽松的指导方针 (iOS Code Review: Loose Guidelines)  Jack Nutting   February 19, 2014 IOS + From time to time I've been asked to do an independent code review, to determine the overall health of a client's code base. Unlike a code walkthrough, where