提高代码质量:代码审查

在项目开发中,代码质量是非常重要的一环。高质量的代码对项目完成质量、能否按时完工有重大影响。而一个团队中开发成员的配置往往是金字塔形的。基于开发成本考虑,项目主管或小组长一般由经验丰富的资深高级程序员担任,开发成员则由普通程序员、新员工、实习生组成。各个开发成员水平参差不齐,以及该行业内开发人员的高流动性。这样的条件和环境必然带来代码质量问题。项目主管难于把握项目进度,很容易造成项目延期,即使加班不少。

  既然问题存在了,就必须解决它。解决的思路就是代码审查

  代码审查的前提:

  1、统一项目组内部代码审查必要性思想,消除猜忌,建立融洽的团队合作气氛。代码审查不是挑刺。不建议使用审查中问题的发现率作为绩效考评标准。

  2、确立合乎自己项目组要求的代码规范文档;

  3、确立代码审查者:项目组成员少于3个,组长是审阅者。多了则要适当按模块分小组,每组不多余3人,每小组选经验丰富的程序员做为代码审阅者。要求代码审阅者与被审阅人最好为同一模块开发者。小组长的工作安排时就应考虑其代码审查职能,并相应减少其代码工作量。

  4、确立审查标准、部署审查代码工具。普通程序员代码提交之前由代码审阅者实施审查。审阅代码者多于2人同时又有代码提交时,审阅代码者互审。

  代码审查内容:

  1、代码风格。通过代码复查,一方面督促开发人员按照规范编写代码,另一方面也使开发人员自身形成良好的编程习惯。代码风格的审查,由于内容比较单一,我们常常可以通过一些代码复查的工具来自动完成,提高复查的效率。

  2、重大缺陷。预先整理编写代码审查的重大缺陷列表,并根据实践经验不断更新、补充、积累审查项目,并在每次审查中逐一检查。这些审查项目根据经验划分等级、优先级。

  3、设计逻辑与思路的审查。这部分的审查是代码复查中最核心、最有价值的部分。代码风格与重大缺陷的审查,虽然重要但简单而机械,可以通过软件自动检查;而设计逻辑与思路的审查,却是复杂而有深度的审查,需要有一定理论深度和编码经验的人才能完成,而且对新手尤其重要。在新手完成编码以后,让老手去进行代码复查,指出新手的问题,指导新手设计。这样的过程最初可能需要重构,甚至重新编码。新手的进步、成长速度是加快的。老手通过对新手的指导,整理和升华自己的设计思路与理论,同时也是对自己另一方面的锻炼与提高。最终整个团队都得到了提高。

  但代码审查无疑也带来了很高的代价。时间、人力与代码质量,其本身就是鱼和熊掌不可兼得。因此不同公司、同公司不同发展时期就会采取不同的代码复查策略。审时度略,实事求是,每个项目组都应该提出适合自己的代码审查方法。

====================================分割线================================

最新内容请见作者的GitHub页:http://qaseven.github.io/

时间: 2024-09-15 02:30:21

提高代码质量:代码审查的相关文章

如何提高代码质量(管理篇):代码复查

也许你是一位项目经理,也许你是一位项目骨干成员,或者开发小组长.在我发表"如何提高代码质量"的这一系统文章后,有许多网友都向我抱怨,说他无法把握整个项目组成员的代码质量.我想,这也是所有项目组普遍存在的问题吧,它通常表现为以下几个问题: 软件项目普遍存在的问题 1)新手.任何项目组成员都不可避免地出现新手,他们往往是刚刚从大学毕业的学生.这些新手由于软件开发时间太短,往往技术不成熟,没有形成良好的开发习惯,所以编写代码质量较差,问题很多.他们常常成为项目组的"鸡肋"

提高代码质量:如何编写函数

提高代码质量:如何编写函数 函数是实现程序功能的最基本单位,每一个程序都是由一个个最基本的函数构成的.写好一个函数是提高程序代码质量最关键的一步.本文就函数的编写,从函数命名,代码分布,技巧等方面入手,谈谈如何写好一个可读性高.易维护,易测试的函数. 命名 首先从命名说起,命名是提高可读性的第一步.如何为变量和函数命名一直是开发者心中的痛点之一,对于母语非英语的我们来说,更是难上加难.下面我来说说如何为函数命名的一些想法和感受: 采用统一的命名规则 在谈及如何为函数取一个准确而优雅的名字之前,首

11步提高代码质量和整体工作效率

  这篇文章要介绍的,是我作为专业程序员这些年来学到的能真正提高我的代码质量和整体工作效率的11件事情. 1. 永远不要复制代码 不惜任何代价避免重复的代码.如果一个常用的代码片段出现在了程序中的几个不同地方,重构它,把它放到一个自己的函数里.重复的代码会导致你的同事 在读你的代码时产生困惑.而重复的代码如果在一个地方修改,在另外一个地方忘记修改,就会产生到处是bug,它还会使你的代码体积变得臃肿.现代的编程语 言提供了很好的方法来解决这些问题,例如,下面这个问题在以前很难解决,而如今使用lam

提高代码质量-工具篇

注:这是一篇翻译文章,原文:How to improve quality and syntax of your Android code,为了理解连贯,翻译过程中我修改了一些陈述逻辑和顺序,同时也加了一些自己的补充. 在这片文章中,我将从工具使用的角度上讲述如何提高 Android 代码质量,这些自动化工具包括 Checksytle.Findbugs.PMD 和 Android Lint. 团队中代码意识不一致,水平参差不齐,代码风格迥异,定下的规范也是熟视无睹.这时候就需要借助工具的力量,利用

重构真的能提高代码质量吗?

  与传统观点相反,新的研究发现,想要为了更高效和更具可维护性,而去重组软件代码,我们所花的时间和精力并不一定是值得的. 重构软件,也就是,重组现有的源代码,以使其更高效,更具可读性和可维护性,这可能是所有开发人员时不时在做的一件事情.当然,重构背后隐含的假设 是,将来的收益--可节省的人力物力,要能大于现在投入的成本--所耗费的时间和努力.然而,新的实验研究表明,情况可能并不像你想像得那样美好,重构或 许并不能大幅度地改善软件代码质量,有时候甚至是完全没有起到一点改善作用. 此研究是由研究人员

如何利用VB类提高代码质量

  可能平时我们在用VB写程序的过程中,会忽视一些面向对象的思想.希望通过一个例子能够对大家起到抛砖引玉的作用,我们举一个VB访问数据库的例子.这是本人第一次写技术方面的文章,请大家支持!!QQ:16644686 1.经常出现的写法 在VB中实现对数据库的访问,我们可能会通过一个全局函数来实现,例如以下的代码: Public Function DBSqlOpen(strName As String, strPWD As String, _                            s

如何提高你代码质量

人跟人的能力千差万别,所以写出来的代码质量,肯定是不同的.有的人,写一个小逻辑,可能需要100行,而有的人,可能仅仅需要10行.代码永远会有Bug,在这方面没有最好只有更好.模块化与面向对象是实现高效无错代码的方法.高效无错代码需要思想与实践的不断反复.如何做到代码高效无错,提高代码质量的方法有哪些?又有哪些经验和技巧呢? 一.代码质量   软件是交付给用户,并由用户体验的产品:代码则是对软件正确且详细的描述,所以代码质量关系到软件产品的质量.虽然软件质量不等于代码质量,但是代码上的缺陷会严重的

一小时写给同组的如何使用工具检测代码质量

因为要做个小项目,同组的同事都比较年轻,为了规范下代码,因此简单的写了下怎么提高代码质量,分享一下: 在接口不通的情况下进行单元测试 使用Mockito, 如果获取余额部分代码为: public class PayServiceImpl implements PayService { private BizPayService bizPayService; @Override public BigDecimal getBalance(String pin) { try { return bizP

三年0故障总结,提升代码质量的秘诀

该文章来自于阿里巴巴技术协会(ATA)精选文章. 个人经历 对我代码质量影响最大的是在一家外资企业,在这家公司我觉得有以下几个方面做的很不错. 团队编码风格统一 统一到什么程度? 不看代码作者,你很难区分代码是谁写的(在目前公司一些团队也能达到这个标准). 个人观点: 这样做有什么好处?团队中每个人阅读代码都很容易,减少很多沟通,维护成本( 代码阅读的次数远远大于变更的次数),并且心情非常愉悦.有人肯定觉得愉悦有点夸张,举个栗子: 有一些代码,如果不是由于与工作内容有关联,你是否有种这辈子都不情