从软件巨头SAP管理bug的“程序”流程…

来源:互联网 发布:videojs flash.js 编辑:程序博客网 时间:2024/05/17 05:51

申明:本文并非完全由作者原创,文中的部分思想来自网络,但是本人本着取其精华,去其不适合之处进行了修改,所以假如作者能够见到本文的话,请谅解。


----------------但是CodeReview这东西在实际应用过程中仍然有很多值得改进的地方,比如很多公司把CodeReview放在项目的结束后期,如果是这样做的话就失去了在项目的早期通过查代码的方式发现程序中的Bug的意义了。还有从项目的什么时候开始CodeReview呢?还有多长时间进行一次Code Review的时间比较合适呢,如果二次间隔时间太短的话进行一次CodeReview的话肯定会影响项目的进度?那么又该如何控制这个时间呢?还有一些刚毕业的年轻的开发新手,甚至对CodeReview有抵触情绪等,甚至以为是在给自己挑刺,又该如何处理类似的情况呢?所以CodeReview在实际应用过程中项目管理者要结合项目的实际情况进行操作。

 

 

Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。

先来看一个例子软件巨头SAP管理bug的“程序”流程如下:

■ 自我测试,要求开发人员在完成自已负责的模块后,马上进行测试,消除模块内部的错误 

■ 相互测试,要求开发人员之间测试对方的模块,由于不同开发人员的思维、开发方式的不同,对方会很容易找到一些自已很难发现的问题 

■ 代码检查,通常是由资深开发人员及开发经理来进行,从模块功能、性能、可用性、编码规范、模块集成性等角度进行全面检查。这一工作会在系统实现的各个阶段定期进行。SAP还提供了如CATT等辅助测试工具。  

其实SAP流程里面隐约包含了一种Code Review的思想:先自我进行测试检查、然后互相测试检查、最后再有资深的人员进行代码的检查,这些做法的目的就是在项目的早期发现程序中的缺陷bug

 

一:Code Review的目的

Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码,测试过程和注释进行检查。Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的:

■ 在项目早期就能够发现代码中的Bug

从代码的易维护性、可扩展性角度考察代码的质量,提出修改建议

■ 帮助初级开发人员学习高级开发人员的经验,达到知识共享

■ 避免开发人员犯一些很常见,很普通的错误

■ 保证项目组人员的良好沟通

■ 项目或产品的代码更容易维护

 

二:Code Review的前提
知道了Code Review的目的,我们就可以看看如何做Code Review了,但在做Code Review前我们还有事要做,所谓预则立,不预则废,就是说如果在进入Code Review之前我们不做些准备工作,Code Review很容易就变得没有意义或是流于形式,这在我们周围是有很多例子的啊。进入Code Review需要检查的条件如下:

 Code Review人员是否理解了Code Review的概念和Code Review将做什么

如果做Code Review的人员不能理解Code Review对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。

 代码是否已经正确的buildbuild的目的使得代码已经不存在基本语法错误

我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。

代码执行时功能是否正确

Code Review人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。

Review人员是否理解了代码

做复查的人员需要对该代码有一个基本的了解,其功能是什么,是一方面的代码,涉及到数据库或是通讯,这样才能采取针对性的检查

开发人员是否对代码做了单元测试

这一点也是为了保证Code Review前一些语法和功能问题已经得到解决,Code Review人员可以将精力集中在代码的质量上。

 

三:Code Review需要做什么

Code Review主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能等等)

 

:Code Review经验检查项

以下是在实践中建立的检查列表(checklist),通过分类和有针对性的检查项,保证了Code Review可以有的放矢。

因为新浪的博客字数的限制,所以此处的内容省略了。大体上的内容就是一些java的编码规范、面向对象的设计、代码的性能、安全性等以及数据库处理等等方面的内容。此处的内容以后单独拿出来。

 

 :什么样的人承担代码审核者Code Reviewer

什么样的人承担代码审核者Code Reviewer

(1)、比较熟悉相关商业逻辑。
(2)、有丰富的编程经验。
两者缺一不可。

 

 

 :Code Review详细步骤

(1)、代码编写者和代码审核者坐在一起,由代码编写者按照UC依次讲解自己负责的代码和相关逻辑,从UI->DAO层;
(2)、代码审核者在此过程中可以随时提出自己的疑问,同时积极发现隐藏的bug;对这些bug记录在案。
(3)、代码讲解完毕后,代码审核者给自己安排几个小时再对代码审核一遍。
        代码需要一行一行静下心看。同时代码又要全面的看,以确保代码整体上设计优良。

(4)、代码审核者根据审核的结果编写代码审核报告审核报告中记录发现的问题及修改建议,然后把审核报告发送给相关人员。

(5)、代码编写者根据代码审核报告给出的修改意见,修改好代码,有不清楚的地方可积极向代码审核者提出。

(6)、代码编写者 bug fix完毕之后给出反馈。

(7)、代码审核者把Code Review中发现的有价值的问题更新到"代码审核规范"的文档中,对于特别值得提醒的问题可群发email给所有技术人员。

 

七:Code Review责任:
        代码编写者,代码审核者共同对代码的质量承担责任。这样才能保证Code Review不是走过场,其中代码编写者承担主要责任,代码审核者承担次要责任。

 

八:Code Review必备的文档:
      代码审核规范文档:记录代码应该遵循的标准。代码审核者根据这些标准来Code Review代码,同时在Code Review过程中不断完善该文档。

 

九:Code Review总结
通过在项目中实施Code Review将为我们带来多方面的好处,表现在提高代码质量,保证项目或产品的稳定性,开发经验的积累等,具体的实施当然也要看项目的实际情况,因为Code Review也是需要成本的,这方面属于Code Review过程的问题,在此不探讨。

 

 

 

 


 

0 0
原创粉丝点击