代码审核复查

开发者:李晓亮   1 4

审核者:任永鹏   1 3

项目,因为两个素质良莠不齐,写出的代码质量不一,为了保证项目质量,不得不对代码一行行进行审查。同时,为了对代码审查有个更深的了解及借鉴其它同行实践成果,在网上搜集了不少项目知识,下面是对这些知识做出的整理。

第1章前提
在 Wikipedia 上,对代码审查的定义是:代码审查(英语:Code Review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软件质量及开发者的技术。代码审查常以不同的形式进行,例如结对编程、非正式的看过整个代码,或是正式的软件检查。
1.1代码审查首先要求团队有良好的文化
团队需要认识到代码审查是为了提高整个团队的能力,而不是针对个体设置的检查“关卡”。“A的代码有个bug被B发现,所以A能力不行,B能力更好”,这一类的陷阱很容易被扩散从而影响团队内部的协作,因此需要避免。另外,代码审查本身可以提高开发者的能力,让其从自身犯过的错误中学习,从他人的思路中学习。如果开发者对这个流程有抵触或者反感,这个目的就达不到。
1.2谨慎的使用审查中问题的发现率作为考评标准
在代码审查中如果发现问题,对于问题的发现者来说这是好事,应该予以鼓励。但对于被发现者,我们不主张使用这个方式予以惩罚。软件开发中bug在所 难免,过度苛求本身有悖常理。更糟的是,如果造成参与者怕承担责任,不愿意在审查中指出问题,代码审查就没有任何的价值和意义。
第2章代码质量的属性
可理解性:代码需要在各个层面上能够被容易地理解。理想情况下,软件应该非常简单,并没有非常明显的缺陷。
可测试性:代码需要被编写的非常容易被测试。
正确性:代码需要满足功能和非功能性的需求。代码的行为是否与预期一致,其逻辑是否是正确无误的?被审查的代码是否与其他代码拥有类似的结构和功能?
有效性:代码需要有效的使用系统资源(内存,CPU,网络连接,等)。
第3章做代码审查的好处
更容易发现和架构以及时序相关等较难发现的问题。
帮助团队成员提高编程技能
统一编程风格
第4章代码质量低下的症状
所有事情都很艰难
进度慢
测试套件运行缓慢
无法避免的缺陷
你的团队是消极的
知识缺乏共享
新开发人员成长周期太长
第5章怎么审查
1个Review流程:先Review设计实现思路,然后Review设计模式,接着Review成形的骨干代码,最后 Review完成的代码,如果程序复杂的话,需要拆成几个单元或模块分别Review。
尽可能的让不同的人Reivew你的代码:不要总是只找一个人来Review你的代码,不同的人有不同的思考方式,有不同的见解,所以,不同的人可以全面的从各个方面评论你的代码,有的从实现的角度,有的从需求的角度,有的从用户使用的角度,有的从算法的角度,有的从性能效率的角度,有的从易读的角度,有的从扩展性的角度……这样以后会有更多的人帮你在日后维护你的代码。
保持积极的正面的态度:程序最大的问题就是“自负”,尤其当我们Reivew别人的代码的时候。所以,无论是代码作者,还是评审者,都需要一种积极向上的正面的态度,作者需要能够虚心接受别人的建议,因为别人的建议是为了让你做得更好;评审者也需要以一种积极的正面的态度向作者提意见,因为那是和你在一个战壕里的战友。
控制每次审查的代码规模:根据smartbear在思科所作的调查,每次审查200行-400行的代码效果最好。每次试图审查的代码过多,发现问题的能力就会下降。
要带着问题去做:我们在每次代码审查中,要求审查者利用自身的经验先思考可能会碰到的问题,然后通过审查工作验证这些问题是否已经解决。一个窍门是,从用户可见的功能出发,假设一个比较复杂的使用场景,在代码阅读中验证这个使用场景是否能够正确工作。使用这个技巧,可以让审查者有代入感,真正的沉浸入代码中,提高效率。
尽量使用静态代码分析工具以提高审查效率。
二八定律处理高风险代码:审查所有的代码并没有太大的意义,应该把审查的重点放在高风险的代码和容易引起高风险的修改或者重构的代码上。旧而复杂、处理敏感数据、处理重要业务逻辑和流程、大规模重构以及刚加入团队的开发者实现的代码都是审查的重点。
让原作者对发现的问题进行确认:这样做有两个目的,确认问题确实存在,保证问题被解决;让原作者了解问题和不足,帮助其成长。
自我审查:所有团队成员在提交代码给其他成员审查前,必须先进行一次审查。这次自我修正形式的审查除了检查代码的正确性以外,还可以完成如下的工作:
对代码添加注释,说明本次修改背后的原因,方便其他人进行审查。
修正编码风格,尤其是一些关键数据结构和方法的命名,提高代码的可读性。
从全局审视设计,是否完整的考虑了所有情景。在实现之前做的设计如果存在考虑不周的情况,这个阶段可以很好的进行补救。
代码审查结束后的回顾总结:成员在编码的时候应做随手记录,包括在代码中用注释的方式表示,或者记录简单的个人文档,这样做有几个好处:
避免遗漏。在编码时将考虑到的任何问题都记录下来,在审查阶段再次检查这些问题都确认解决。
根据研究,每个人都习惯犯一些重复性的错误。这类问题在编码是记录下来,可以在审查的时候用作检查的依据。
在反复记录笔记并在审查中发现类似的问题后,该类问题出现率会显著下降。

时间: 2024-10-11 01:52:00

代码审核复查的相关文章

4.8日代码审核复查

开发者:孙硕       02号 审核者:杨贝森    06号 项目,因为两个素质良莠不齐,写出的代码质量不一,为了保证项目质量,不得不对代码一行行进行审查.同时,为了对代码审查有个更深的了解及借鉴其它同行实践成果,在网上搜集了不少项目知识,下面是对这些知识做出的整理. 第1章前提        在 Wikipedia 上,对代码审查的定义是:代码审查(英语:Code Review)是指对计算机源代码系统化地审查,常用软件同行评审的方式进行,其目的是在找出及修正在软件开发初期未发现的错误,提升软

Gerrit 代码审核服务器的工作流和原理

Gerrit 代码审核服务器的工作流和原理 谷歌 Android 开源项目在 Git 的使用上有两个重要的创新,一个是为多版本库协同而引入的 repo,这在之前我们已经详细讨论过.另外一个重要的创新就是 Gerrit -- 代码审核服务器.Gerrit 为 Git 引入的代码审核是强制性的,就是说除非特别的授权设置,向 Git 版本库的推送(Push)必须要经过 Gerrit 服务器,修订必须经过代码审核的一套工作流之后,才可能经批准并纳入正式代码库中... 6.7   Gerrit 代码审核服

关于代码审核

最近一直在想如何提高产品质量的方法,其中最重要的一点就是要真正做好“代码审核”,而不是浮于便面只是为完成公司的流程制度,在这点上不仅我自己要做好,要让整个团队也能做好,要让大家真正通过代码审核这个活动提升自己,帮助别人.站在当前的角度在为提升团队代码审核效果要加强宣贯代码审核的重要性意义,已有的规范工具方法,团队成员达成共识.毕竟人才是首要问题,要大家齐心协力才能做好.下面这篇文章感觉很不错从自身不同的角色成长描述了对代审核的看法,其中穿插了一些不错的方法,分享一下. “code review”

sonar 代码审核工具安装图解(程序代码必备利器)

sonar是一款代码审核工具,可以有效的解决自己代码的规范度 本文是在window下面安装 这是一个检查maven项目的配置 安装sonar-runer 安装配置 对应上面的配置 启动sonar  界面 idea集成工具 这二个和findbug功能类似,但是也有差异,具体自行百度 idea运用方式 单击进入官网,解决方案 界面和我们前面安装的一样,只是我们自己安装,可以看见具体统计情况

ubuntu搭建gerrit+gitweb代码审核系统

一.Gerrit的简介 Gerrit是Google开源的一套基于web的代码review工具,它是基于git的版本管理系统.Google开源Gerrit旨在提供一个轻量级框架,用于在代码入库之前对每个提交进行审阅.每个修改都将提交到gerrit上,但实际上没有真正意义的成为项目的一部分,直到提交被管理员review和submit.它是标准开源过程的一个简单工具来支持提交补丁程序,然后由项目成员在应用到代码库之前进行review. 二.Gerrit的搭建步骤 账号配置 配置gerrit的管理账号

谷歌最佳实践 - 如何写代码审核评论

来源 如何写代码审核评论 概述 友善一些 清楚的阐述你的理由 要在清楚地给出方向和指出问题后让开发者自己决定之间做好平衡 鼓励开发者简化代码或者添加说明,而不是解释代码为什么这么复杂 礼貌 通常当你在审核别人的代码时,友善.尊重.提供清晰.有效的意见对于开发者是非常重要的.做到这个的方法是在评论中只针对代码,而不是开发者.你不一定需要一直按照推荐实践来操作,但是当你说一些负面的或者有争议的意见时一定要按照规范来.例如: 错误:"为什么你在这种明显不需要并发的场景使用多线程呢?" 正确:

存储过程代码审核

     存储过程代码审核 代码审核(phoneinterface数据库新建存储过 [interface].updaterefund_orders])   峰哥: 修改邮储退款记录表,由于系统升级造成退款订单一直处于退款中状态,但是这时候并没有退款成功,可以重新发起退款请求,所以需要把订单状态改为0重新发起请求退款. 下面是我写的更改退款记录表订单状态的的存储过程,请审批. 谢谢! 注意 1.新增代码为蓝色(包括修改) 2.测试代码为绿色 3.删除代码为红色 CREATE PROCEDURE [

jenkins集成sonarqube代码审核

目前在持续集成领域,除了后起之秀travis ci,在老牌工具中,最著名的还是非jenkins莫属.本篇文章简单的说一声jenkins与sonarqube的集成来实现代码的静态审核. 在这里不详细罗列jenkins的安装与初始化配置,假设你已经安装好了jenkins,并正常启动了.我们直接 开始安装sonarqube的插件,方法如下: 系统管理 --> 管理插件 --> 可选插件 --> Sonarqube Plugin 安装完成以后,在jenkins系统设置中配置sonarqube如下

Apache+SVN+Review Board代码审核服务器搭建流程

一.简介 代码审查(CodeReview)不但可以提高质量,而且还是一个知识共享和指导的极好的手段.ReviewBoard是一款比较优秀的,开源的基于WEB的代码审查工具. 二.准备工作 2.1.安装依赖包 yum -y install gcc gcc-c++ make cmake autoconfautomake libffi libffi-devel ncurses* bison* zlib* expat* openssl* apr* neon* 2.2.安装Apache yum -y in