代码审查
你应该做代码审查。为什么?因为它提高了代码质量并减少了缺陷。但它并不是必需的,因为一些你可能在想的原因。
由于可能在以前的代码审查中有一些不好的经历,很多程序员倾向于讨厌代码审查。我曾见过有的组织要求所有的代码在部署到产品中时都必须经过一个正式的代码审查。通常是架构师或者主程序进行,即一种可以描述为“架构师审查一切”的做法。这在他们的软件开发过程手册中明确规定,所以程序员必须履行。也许有的组织是需要这样僵硬的、正式的过程,但是大多数都不需要。大多数的组织中,这样的做法只会适得其反。被审查的人会感觉是在被假释委员会审判。审查者既要花时间阅读代码,也要花时间跟上系统的所有细节,很快就会成为过程的瓶颈,于是整个过程很快就变坏了。
代码审查的目的应该是分享知识、建立公共的编码指南,而不是简单的纠正错误。与其它程序员分享你的代码可以让代码归集体所有。让任一组员在组内其它人的代码中游荡。你应该通过学习和理解来审查代码,而不是寻找错误。
代码审查时应该有礼貌。确保评论是建设性的,不要尖酸刻薄。为审查会议引入不同的审查角色,以避免团队的组织资历影响审查。例如,角色里面可以有专注于文档的审查员,或者专注于异常的,或者专注于功能的。这种做法有助于在成员中分散审查负担。
每周一个例行的代码审查日。每次审查会议花上两个小时。在每次会议时简单地轮流被审查者。记住每次会议上也在组内交换角色。代码审查中把新人也包括进来,他们可能没有经验,但他们新鲜的大学知识可以提供一个不同的视角。把专家包括进来,他们有经验和知识,可以更快、同时更精准地定位易错代码。如果团队有通过工具检查的编码规范,那么代码审查的流程会更简单一些。那样,代码格式就永远不用在代码审查会议中讨论了。
使代码审查有趣可能是成功的最重因素了。审查,是人在审查。如果审查会议很痛苦或者无聊,可能就谁也激励不了了。做一个非正式的代码审查,其首要目的在于组员之间分享知识。抛开那些挖苦的评论,带着一块蛋糕或者一袋午餐来吧。
原文:Code Reviews by Mattias Karlsson