Code Review 理论与实战.docVIP

  • 3
  • 0
  • 约5.99千字
  • 约 5页
  • 2017-05-12 发布于河南
  • 举报
Code Review 理论与实战

Code Review 理论与实战 ? ? 摘 要 Code Review是一种通过复查代码提高代码质量的过程,在XP方法中占有极为重要的地位,也已经成为软件工程中一个不可缺少的环节。本文通过对Code Review的一些概念和经验的探讨,就如何进行Code Review和Code Review中应该注意什么提出一些建议。 本文中涉及的问题大部分针对JAVA类代码。同时本文不涉及Code Review过程和组织。 关键词: Code Review,JAVA, XP ,代码质量 ,软件工程 一、Code Review简介 1 Code Review的目的 凡事知其然还要知其所以然,我们首先需要知道什么是Code Review和我们使用它的目的是什么。Code Review是一种用来确认方案设计和代码实现的质量保证机制,通过这个机制我们可以对代码,测试过程和注释进行检查。Code Review主要用来在软件工程过程中改进代码质量,通过Code Review可以达到如下目的: 1,尽早地发现bug; 这里并不是指一些简单的bug,而是一些可能是因为经验上不足而出现的潜在的bug。因此code review人员一定是要比较有经验的人担当。 2,帮助初级开发人员学习高级开发人员的经验,以达到知识共享; 这点也很重要,使得小组成员不断地进步,这样才能更有效地工作。 3,保证项目组成员有良好的沟通; code review人员起着小组沟通桥梁的作用,而不是去熟悉每个单元代码,而去调试、编译等工作,那样还不如自己去写整个系统。 4,项目或产品的代码更容易维护; 这里就是检查代码规范、代码注释等。使得代码尽量统一化,最理想的效果是看不出是哪个具体人写的,而是哪个Team写的。 5,避免开发人员犯一些很常见,很普通的错误 Code Review的目的,我们就可以看看如何做Code Review了,但在做Code Review前我们还有事要做,所谓预则立,不预则废,就是说如果在进入Code Review之前我们不做些准备工作,Code Review很容易就变得没有意义或是流于形式,这在我们周围是有很多例子的啊。进入Code Review需要检查的条件如下: a)?????? Code Review人员是否理解了Code Review的概念和Code Review将做什么 如果做Code Review的人员不能理解Code Review对项目成败和代码质量的重要程度,他们的做法可能就会是应付了事。 b)????? 代码是否已经正确的build,build的目的使得代码已经不存在基本语法错误 我们总不希望高级开发人员或是主管将时间浪费在检查连编译都通不过的代码上吧。 c)????? 代码执行时功能是否正确 Code Review人员也不负责检查代码的功能是否正确,也就是说,需要复查的代码必须由开发人员或质量人员负责该代码的功能的正确性。 d)????? Review人员是否理解了代码 做复查的人员需要对该代码有一个基本的了解,其功能是什么,是拿一方面的代码,涉及到数据库或是通讯,这样才能采取针对性的检查 e)?????? 开发人员是否对代码做了单元测试 这一点也是为了保证Code Review前一些语法和功能问题已经得到解决,Code Review人员可以将精力集中在代码的质量上。 3 Code Review需要做什么 好了,进入条件准备好了,有人在这些条件中看到Code Review这也不负责,那也不检查,不禁会问,Code Review到底做什么?其实Code Review主要检查代码中是否存在以下方面问题:代码的一致性、编码风格、代码的安全问题、代码冗余、是否正确设计以满足需求(性能、功能等等),下边我们一一道来。以下内容参考了《Software Quality Assurance: Documentation and Reviews》一文中的代码检查部分。 3.1完整性检查(Completeness) 代码是否完全实现了设计文档中提出的功能需求 代码是否已按照设计文档进行了集成和Debug 代码是否已创建了需要的数据库,包括正确的初始化数据 代码中是否存在任何没有定义或没有引用到的变量、常数或数据类型 3.2一致性检查(Consistency) 代码的逻辑是否符合设计文档 代码中使用的格式、符号、结构等风格是否保持一致 3.3正确性检查(Correctness) 代码是否符合制定的标准 所有的变量都被正确定义和使用 所有的注释都是准确的 所有的程序调用都使用了正确的参数个数 3.4可修改性检查(Modifiability) 代码涉及到的常量是否易于修改(如使用配置、定义为类常量、使用专门的常量类等) 代码中是否包含了交叉说明或数据

文档评论(0)

1亿VIP精品文档

相关文档