代码审查清单可消除更多的bug

标签: 代码审查 清单 消除 | 发表时间:2015-01-16 00:42 | 作者:
出处:http://news.cnblogs.com/

英文原文: Stop More Bugs with our Code Review Checklist

在关于高效代码审查的博客中,我们推荐使用清单(checklist)。清单是 代码审查中的伟大工具——他们确保审查在团队里持续高效。它们也是确保常见问题被识别、解决的方便途径。

软件工程协会的研究表明,程序员常犯的错误有 15-20 种。因此把这种错误增加到清单里,你就能确保 在它们出现时指出来,帮助消除这种隐患

代码审查清单可消除更多的 bug

为了让你开始建立清单,下面是经典的条目列表:

代码审查清单

总体

  • 代码能运行吗?代码实现了想要实现的功能了吗,逻辑是正确的吗,等等。
  • 所有代码都很容易理解吗?
  • 它遵循了你们都同意的代码规范吗?规范通常包括花括号的位置、变量和函数的命名、行长度、缩进、格式和注释。
  • 有多余的或重复的代码?
  • 代码尽可能模块化了?
  • 全局变量能被替换?
  • 有任何被注释掉的代码?
  • 循环结构里有固定的长度值和正确的结束条件?
  • 有代码可以被类库函数取代?
  • 日志和调试代码可以被移除?

安全

  • 所有数据输入都被校验(为了正确的类型、长度、格式和范围)和转码了?
  • 第三方工具集在哪里用到了,能够返回被捕捉到的错误吗?
  • 输出值经过校验和转码了?
  • 不合法的参数值得到处理了?

文档

  • 有文档吗,文档描述了代码意图吗?
  • 所有的函数都加注释了?
  • 任何不寻常的行为和边界处理都做说明了?
  • 就第三方类库的使用和功能写文档了?
  • 所有的数据结构和测试单元都做解释了?
  • 有不完整的代码?如果有,它应该被移除还是打上’TODO‘之类的适当标记?

测试

  • 代码可测试吗?比如,不要增加太多的或隐藏的依赖,不能够实例化对象,测试框架能够使用方法等。
  • 有测试吗,它们全面吗?比如,至少包含了你们认可的代码覆盖率吗?
  • 单元测试实际地测试了代码正在实现的目标功能了?
  • 数组检查’越界‘错误了?
  • 测试代码可被已有 API 的应用取代吗?

你还可以为清单增加一些语言相关的问题。

该清单故意没有包含所有的问题,你并不想一个长长的清单,以致于没人去使用。只需覆盖常见问题即可。

优化你的清单

把该清单做为一个起点,你应该针对具体用例进行优化。有个不错的办法,那就是让你的团队在代码审核时,花一点时间提出所产生的问题。有了这些数据,你就能够甄别出团队的常见错误,然后就被改造成常见清单。要确保删除那些不会发生的条目(你或许希望保持较少地发生,还有诸如安全相关的重要条目)。

集思广益,及时更新

做为通用法则,清单上的条目应该是具体的,如果有可能,你可以就此做一份二元决策【注1】。这有助于避免判断上的矛盾,与团队分享清单,并得到他们对于内容的认同也是不错的主意。确保定期审查清单,检查每一项以确保仍然相关。

有了优秀的清单武装,你就可以增加代码审核中的瑕疵数量。这有助于你提升代码质量、避免不稳定的代码审核质量。

为了更多地了解 Fog Creek 上的代码审核,请观看下面的视频: http://fast.wistia.net/embed/iframe/vigy79tuhq

— END —

译文: 《 代码审查清单可消除更多的 bug 》  腊八粥

本文链接

相关 [代码审查 清单 消除] 推荐:

代码审查清单可消除更多的bug

- - 博客园_新闻
英文原文: Stop More Bugs with our Code Review Checklist. 在关于高效代码审查的博客中,我们推荐使用清单(checklist). 清单是 代码审查中的伟大工具——他们确保审查在团队里持续高效. 它们也是确保常见问题被识别、解决的方便途径. 软件工程协会的研究表明,程序员常犯的错误有 15-20 种.

代码审查(Code Review)清单

- - 博客 - 伯乐在线
代码审查可以帮助提高代码质量,避免由于代码习惯而造成的 bug. 下面列出的这些要点因该可以作为大部分代码审查的指导,如果是 Java 应用的话,这些建议应该被视作最佳实践. Javadoc 应该在每一个类和方法中添加. 如果是修复某个 bug,应该添加 bug ID. 走捷径的方法或者复杂的逻辑要有解释.

代码审查过程

- - 博客园_知识库
   英文链接: Code Review Processes.   对我而言,把代码产品化而没有合适的审查流程,就像是一场抽抽乐游戏. 代码当然也有可能会挺好,不过总还是有一定概率某人的哪块积木没抽好,然后一切就轰然崩塌. 无论是采用持续集成服务、结对审查、QA审查,还是所有这些方案的组合,都可以大大降低引入风险的概率.

Google 是如何做代码审查的

- litefy - python.cn(jobs, news)
在上一篇文章中提到过,我已经不在Google工作了. 我还没有想清楚应该去哪里—有两三个非常好的工作机会摆在我面前. 因为在这段做决定时间里,我不再受雇于任何人,我想可以写一些专业性的东西,一些很有趣,但也会在同事和管理工作中导致关系紧张的东西. Google是一个非常优秀的公司. 他们做出了很多令人称赞的东西—既是公司外部,人们可以看到的东西,也是公司内部.

代码审查中应该做的事

- China Moon - Solidot
威客 写道 "Mark Chu-Carroll从Google离职后,虽然已经收到了很多offer,但还没有决定去哪里. 他在其博客中分享了一些关于代码审查的趣事(中文). Google确实是一家很酷的公司. 不论是在公司内部或是外部,Google都做了很多让人赞叹的的事情. 这里我想介绍一些不涉及商业机密,但鲜为外人所知的事情.

敏捷代码审查指南

- - 博客 - 伯乐在线
“通过一次真正彻底地代码审查(code reviews),仔细阅读你的代码,找出问题,这是我知道的最好的方式去检测早期的bug,但是他们很少去这样干过. 某种意义上是因为他们花了大量的时间去写好代码,但是我认为主要是因为绝大部分 程序员害怕其他人审查自己的代码. 作为专业的程序员我们要克服阻力,如果你不愿意别人阅读你的代码,然后只是按照自己的意愿写,如果其他人没法读懂它,又怎能让别人使用呢.

我所钟爱的代码审查

- - 译言-电脑/网络/数码科技
This is pretty standard fare for developers in the "real world", but I have never heard of an academic research group using them, and had never done code reviews myself before joining Google..

代码审查不是用来……

- - 外刊IT评论
提示:如果您在阅读器里点击订阅本站的文章链接时发现有一个中转页,这说明你的订阅地址有误,本站的订阅地址(RSS)是:. http://www.aqee.net/feed/,请及时纠正. 事实上,今天的我们正是从这种一直坚持探索的漫长道路上走出来的. 我们尝试各种技术、方法和工具,直到我们走到今天的成就(但这并不是说我们就此停步).

我们如何进行代码审查

- - CSDN博客研发管理推荐文章
本文来源于我在InfoQ中文站原创的文章,原文地址是:. Jim Bird是一位经验丰富的软件开发经理、项目经理与CTO,专注于软件开发与维护、软件质量与安全等领域中疑难问题的解决. 在过去的15年间,Jim曾管理过团队建设并主导过高性能的财务系统的建设. 他的主要兴趣在于如何提升小团队的效率以构建真正的软件:高质量、安全、可靠、高性能及适应性强.

你们公司做代码审查吗?

- - 外刊IT评论
每当从各种公司听到他们正在尝试自动化部署/测试的事情,我都非常关注,但通常会很吃惊,他们很少会考虑去实行代码审查制度. 看到这种情况,我通常想问: 如果代码没有经过其它人的审查,你如何知道你要测试的是什么. 这答案(如果有的话)通常是捏着手指头说 有几个人在做代码审查或“正在考虑中”. 不论你采用什么形式的测试过程,什么形式的部署过程,没有代码审查——game over.