目录
1 概述 ············································································································· 3
2 目的 ············································································································· 3
3 适用范围 ······································································································· 3
4 基本原则 ······································································································· 3
5 角色职责 ······································································································· 4
6 评审内容 ······································································································· 4
7 安装 Jupiter ···································································································· 5
8 使用 Jupiter 进行代码评审 ················································································· 6
8.1 准备代码 ·······························································································7
8.2 代码评审 ·······························································································9
8.3 会议讨论 ·······························································································9
8.4 修改代码 ····························································································· 10
8.5 记录结果 ····························································································· 10
1 概述
什么是代码评审(CodeReview)?
代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码
质量的活动。
Jupiter 提供了代码行级别的评审批注功能,方便评审参与人了解具体是哪些行代码存在
问题。
同时,它也比较符合常规的评审流程,被评审人提供待审代码->评审人线下提出个人意
见->组织讨论会讨论每个人提出的意见并确定问题及解决方案->被评审人 rework 修改代码
->评审人查看修改情况。
Jupiter 支持在一个项目中的多次评审,多人协同参与评审,支持多种配置库如 SVN、
CVS 等,支持简单的评审流程,支持问题跟踪。
2 目的
定期进行 CodeReview 可以有效的降低开发风险,除此之外,代码评审还有以下好处:
提高代码质量
在项目的早期发现缺陷,将损失降至最低
评审的过程也是重新梳理思路的过程,双方都加深了对系统的理解
促进团队沟通、促进知识共享、共同提高
3 适用范围
所有研发部门
4 基本原则
没有人否认 CodeReview 对提高代码质量的作用,但是如何进行 CodeReview? 这里确实
存在一些方法和技巧。方法不当,会浪费大量时间、造成低效率;流程过紧,会大大降低生
产力,流程过松,很难知道 CodeReview 的效果,甚至有没有进行 CodeReview,都很难判
断,这里有 11 条代码评审的最佳原则:
一次检查少于 200~400 行代码
努力达到一个合适的检查速度:每小时少于 300~500 行代码
有足够的时间、以适当的速度、仔细地检查,但不宜超过 60~90 分钟
在复审前,代码作者应该对代码进行注释
建立量化的目标并获得相关的指标数据,从而不断改进流程
使用检查表(checklist)肯定能改进双方(作者和复审者)的结果
验证缺陷是否真正被修复
管理人员要营造良好的氛围(文化),使大家可以积极地对待缺陷的发现,发现足
够多的缺陷,只关心问题是什么、怎样引起的,而不关心是谁写的代码
清楚度量工具("Big Brother")的作用——度量工具是双刃剑,要小心使用
自我约束:即使没有时间完成所有代码的检查,也应该尽可能去做,哪怕是一部分
轻量级的 code review 是高效率的、可行的,并能有效地发现缺陷
5 角色职责
开发组长:负责制定 CodeReview 计划,安排 CodeReview 活动职责分工,组织进
行 CodeReview,确保按 CodeReview 过程和规范执行。
开发人员:依据 CodeReview 计划和 CodeReview 过程和规范执行 CodeReview 活
动。
6 评审内容
编码规范问题 命名不规范、magic number、System.out.
代码结构问题 重复代码、巨大的方法和类、分层不当、紧耦合
工具、框架使用不当 Spring、Hibernate、AJAX
实现问题 错误验证、异常处理、事务划分、线程、性能、安全、实现过于复杂、
代码可读性不佳、扩展性不好
测试问题 测试覆盖度不够、可测试性不好
注:代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和 QA 工作来解决
7 安装 Jupiter
Jupiter 作 为 Eclipse 的 插 件 , 安 装 起 来 非 常 方 便 , 只 需 拷 贝
edu.hawaii.ics.csdl.jupiter_3.2.1.jar 至$ECLIPSE_HOME/plugins 目录下,重启 Eclipse 即可,
如果看到 Eclipse 的工具栏上出现了 Jupiter 的图标
,则表示安装成功
8 使用 Jupiter 进行代码评审
代码评审分为两种方式,一种是交叉评审,另一种是代码会审。
交叉评审又称为代码走查,即团队成员互相检查代码,参与者可以是任意两个组员,或
开发组长分别与每个组员结对进行,时机可以选择在下班前半小时,对当天改动的模块进行
评审,代码作者讲解如何以及为何这样实现、评审者提出问题和建议,每次解决的问题要记
录到 SVN 或 CVS 服务器,每次评审代码不宜太多,否则会事倍功半。
代码会审主要用于开发阶段的重点模块集中 Review,它采用的是正式的会议 Review,
参与者包括项目组全体成员,其它组的开发组长也应尽量参加,时机选择,一般是开发进行
到某一阶段时,对共性问题进行总结,对好的做法进行提炼和推广。
二者的评审流程基本一致,区别在于代码会审要开会讨论审查结果,下面就以会议评审
为例详细讲解如何使用 Jupiter 进行代码评审
会议评审分为 5 个阶段,分别是准备代码、代码评审、会议讨论、修改代码、记录结
果
8.1 准备代码
在 Eclipse 中打开要评审的项目的属性选项卡,选中 Review 标签
点击 New...按钮,新建一个 Review,输入 Review ID 和 Description
添加要评审的 java 文件
添加此次评审的评审参与人员
点击 Finish 按钮,被评审人提供待审代码的工作就完成了,Jupiter 将在项目根目录下生
成“.jupiter”文件,被评审人需要将此文件提交至 SVN 服务器,就可以通知其它评审
人员进行代码评审了