




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
代码评审工具Jupiter的使用部 门:银行产品开发部撰 写:王建华文档编号:代码评审工具Jupiter的使用文档状态:正式版 V1.0文档修改记录版本号主要作者修改记录完成日期1.0王建华新建代码评审工具Jupiter的使用文档2012-03-291.1王建华根据最新的插件界面更新文档,完善了使用流程和记录导出功能2012-04-16目录1概述42目的43适用范围44基本原则45角色职责56评审内容57安装Jupiter78使用Jupiter进行代码评审78.1准备代码78.2代码评审128.3会议讨论138.4修改代码138.5记录结果141概述什么是代码评审(CodeReview)?代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。Jupiter提供了代码行级别的评审批注功能,方便评审参与人了解具体是哪些行代码存在问题。同时,它也比较符合常规的评审流程,被评审人提供待审代码-评审人线下提出个人意见-组织讨论会讨论每个人提出的意见并确定问题及解决方案-被评审人修改代码-评审人查看修改情况。Jupiter支持在一个项目中的多次评审,多人协同参与评审,支持多种配置库如SVN、CVS等,支持简单的评审流程,支持问题跟踪。2目的定期进行CodeReview可以有效的降低开发风险,除此之外,代码评审还有以下好处:u 提高代码质量u 在项目的早期发现缺陷,将损失降至最低u 评审的过程也是重新梳理思路的过程,双方都加深了对系统的理解u 促进团队沟通、促进知识共享、共同提高3适用范围所有研发部门4基本原则没有人否认CodeReview对提高代码质量的作用,但是如何进行CodeReview? 这里确实存在一些方法和技巧。方法不当,会浪费大量时间、造成低效率;流程过紧,会大大降低生产力,流程过松,很难知道CodeReview的效果,甚至有没有进行CodeReview,都很难判断,这里有10条代码评审的最佳原则:u 一次检查少于200400行代码 u 努力达到一个合适的检查速度:每小时少于300500行代码 u 有足够的时间、以适当的速度、仔细地检查,但不宜超过6090分钟 u 在复审前,代码作者应该对代码进行注释 u 建立量化的目标并获得相关的指标数据,从而不断改进流程 u 使用检查表(checklist)肯定能改进双方(被评审人和评审人)的结果 u 验证缺陷是否真正被修复 u 管理人员要营造良好的氛围(文化),使大家可以积极地对待缺陷的发现,发现足够多的缺陷,只关心问题是什么、怎样引起的,而不关心是谁写的代码 u 自我约束:即使没有时间完成所有代码的检查,也应该尽可能去做,哪怕是一部分 u 轻量级的code review是高效率的、可行的,并能有效地发现缺陷5角色职责u 评审组织者:负责制定CodeReview计划,安排CodeReview活动职责分工,组织进行CodeReview,确保按CodeReview过程和规范执行。u 评审人和被评审人:依据 CodeReview计划和CodeReview过程和规范执行 CodeReview活动。6评审内容u 工具检查 Eclipse警告 FindBug CheckStyle Jupiter Subclipse 或者Subversiveu 代码注释内容(详细参考代码注释规范) 类注释内容 接口注释内容 方法注释内容 方法内部注释内容u 业务逻辑 业务逻辑实现的正确性 业务逻辑实现的完整性u 代码细节u 异常处理 接口方法声明需要抛出BusinessException 接口实现类最外层需要强制try.catch,对Exception进行marsh BusinessException包装 禁止出现try.catch后,没有对异常做任何处理的情况 在EJB边界对所有的异常进行marsh BusinessException包装 后台所有方法不再显示的进行异常的抛出声明,如有异常用wrappBusinessException包装成运行时异常直接抛出 前台代码直接抛出后台传递过来的异常 前台代码主动抛异常时,需要使用ExceptionUtils.wrappBusinessException; 前后台异常处理类统一使用nc.vo.pubapp.pattern.exception.ExceptionUtils 未用异常作为业务流程转换的判断u 效率 接口的定义使用参数数组来进行批量调用,而不是循环调用非批量接口 方法内部禁止出现循环执行相似重复的SQL语句 尽量使用绑定变量的sql sql关联的表不超过3个 sql不采用外连接u 内存 UFDobule常量必须使用UFDouble.ZERO, UFDouble.ONE UFBoolean常量必须用UFBoolean.TRUE, UFBoolean.FALSE UFBoolean的值必须采用UFBoolean.valueof(true|false|y|n|Y|N),的形式进行构造u 其他 临时表命名方式为:TEMP_(模块名称)_(具体作用) 例如:temp_gl_assid temp_fa_depdata 常量要使用NC枚举类 加锁应用统一的工具类,一定先加锁再查询 代码中访问数据库都用相应的VO类,禁止直接使用JDBC 面向接口编程 方法入口处不能对传入参数进行容错处理 VO的get/set方法中不能包含业务逻辑 VO中不能有业务方法,也不能有数据校验方法 避免全局变量注:代码评审不负责检查功能、逻辑是否正确,这些要靠单元测试和QA工作来解决7使用工具审查安装JupiterJupiter作为Eclipse的插件,安装起来非常方便,只需拷贝edu.hawaii.ics.csdl.jupiter_3.6.jar至$ECLIPSE_HOME/plugins目录下,重启Eclipse即可,如果看到Eclipse的工具栏上出现了Jupiter的图标,则表示安装成功8使用Jupiter进行代码评审代码评审分为两种方式,一种是交叉评审,另一种是代码会审。交叉评审又称为代码走查,即团队成员互相检查代码,参与者可以是任意两个组员,或开发组长分别与每个组员结对进行,时机可以选择在下班前半小时,对当天改动的模块进行评审,代码作者讲解如何以及为何这样实现、评审者提出问题和建议,每次解决的问题要记录到SVN或CVS服务器,每次评审代码不宜太多,否则会事倍功半。代码会审主要用于开发阶段的重点模块集中Review,它采用的是正式的会议Review,参与者包括项目组全体成员,其它组的开发组长也应尽量参加,时机选择,一般是开发进行到某一阶段时,对共性问题进行总结,对好的做法进行提炼和推广。二者的评审流程基本一致,区别在于代码会审要开会讨论审查结果,下面就以会议评审为例详细讲解如何使用Jupiter进行代码评审代码评审分为5个阶段,分别是准备代码、代码评审、会议讨论、修改代码、记录结果8.1准备代码l 在Eclipse中打开要评审的项目的属性选项卡,选中Review标签l 点击“新增”按钮,新建一个评审计划,输入评审编号和描述;评审编号规则:姓名_创建日期,示例如下图所示:l 添加要评审的java文件l 添加此次评审的评审参与人员,人员使用真实的姓名l 指定被评审人l 选项设置,使用默认设置即可l 默认选项设置,使用默认设置即可l 存储路径设置,路径设置规则:review创建日期被评审人,示例如下图:l 过滤器设置,使用默认设置即可l 点击Finish按钮,评审组织者提供待审代码的工作就完成了,Jupiter将在项目根目录下生成“.jupiter”文件,评审组织者需要将此文件提交至SVN服务器,然后邮件通知其它评审人员进行代码评审了8.2代码评审l 在工具栏上选择Review按钮下的“1 个人评审”l 在代码评审过程中,发现有问题的代码,即可先选中有问题的代码,然后点击右键,点击Add Review Issue.或者点击Review Table上的“+”,把问题添加到Jupiter中,在Review Editor指定问题类型、严重性和描述信息,问题类型和严重性必须选择l 完成个人的代码审查后,把Jupiter评审数据目录下的文件提交至SVN,然后通过邮件通知评审参与人员准备小组讨论。8.3会议讨论l 从SVN上取出最新的.jupiter文件,在工具栏上选择Review按钮下的“2 小组讨论”l 个人审查里检查出的所有的问题都会显示在ReviewTable里,双击就能链接到问题所在代码,然后大家讨论这段代码是否有问题,如何解决等等,把结果写到ReviewEditor里,保存;注意修改人和决议必须设置l 所有的问题讨论处理完后,把Jupiter评审数据文件上传至SVN,然后通过邮件通知被评审人修改代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年美国留学入学测试题及答案
- 合作学习:高中英语阅读教学的创新引擎与实践探索
- 代写申博研究计划书合同8篇
- 2026届高考政治一轮复习统编版选必一 第四单元国际组织知识整合 课件
- 教师招聘之《小学教师招聘》模拟卷包及答案详解一套
- 教师招聘之《小学教师招聘》考试押题密卷及完整答案详解【考点梳理】
- 教师招聘之《幼儿教师招聘》模拟题库带答案详解(b卷)
- 2025年教师招聘之《幼儿教师招聘》通关试题库含答案详解(新)
- 教师招聘之《幼儿教师招聘》考试押题卷含答案详解【考试直接用】
- 押题宝典教师招聘之《小学教师招聘》考试题库含答案详解【综合卷】
- T/CNCIA 02015-2023室内墙面无机涂料施工及验收规范
- 压力管道自检自查报告
- 昆明离婚协议书
- 惠农区正和府小区一、二期住宅建设项目地块土壤污染状况调查报告
- 老旧小区改造监理实施细则
- 挖机工时合同协议
- 交通运输行业安全生产标准化指南
- 警惕“死亡游戏”(梦回大唐)守护校园安全主题班会课件
- 辅导机构创业路演
- 激光束传输与变换-第八讲
- 《混凝土砖块机:混凝土砖块机技术》课件
评论
0/150
提交评论