Code Review是保证项目中代码质量非常重要的一个环节,其主要工作是:
1、发现代码中的bug;
2、从代码的易维护性、可扩展性角度考察代码的质量,提出修改建议。
1、代码中的bug主要会出现在下列两个地方:
(1) 与商业逻辑无关的bug。
比如,系统中打开的流/文件/连接等没有及时关闭;或是存在thread safe问题,或是存在性能低下问题等,这类问题对有经验的开发人员是比较容易发现的。
2、与商业逻辑相关的bug。
这类bug是非常隐蔽的,如果有对产品不熟悉的人参与该产品的项目开发,容易出现这类的bug。为了避免这类bug的出现,我们除了在Use Case和Test Case中详细描述以正确指导开发人员并在测试时能及时发现它之外,Code Review也是不可缺少的保证环节。
我们希望代码的审核者对产品非常熟悉。
3、什么样的人承担代码审核者Code Reviewer?
(1)、比较熟悉相关商业逻辑。
(2)、有丰富的编程经验。
两者缺一不可。
4、代码Code Review的步骤,这些是我在平时工作中的经验总结,目前也是按照这个步骤在做。
(1)、代码编写者和代码审核者坐在一起,由代码编写者按照UC依次讲解自己负责的代码和相关逻辑,从Web层->DAO层;
(2)、代码审核者在此过程中可以随时提出自己的疑问,同时积极发现隐藏的bug;对这些bug记录在案。
(3)、代码讲解完毕后,代码审核者给自己安排几个小时再对代码审核一遍。
代码需要一行一行静下心看。同时代码又要全面的看,以确保代码整体上设计优良。
(4)、代码审核者根据审核的结果编写“代码审核报告”,“审核报告”中记录发现的问题及修改建议,然后把“审核报告”发送给相关人员。
(5)、代码编写者根据“代码审核报告”给出的修改意见,修改好代码,有不清楚的地方可积极向代码审核者提出。
(6)、代码编写者 bug fix完毕之后给出反馈。
(7)、代码审核者把Code Review中发现的有价值的问题更新到"代码审核规范"的文档中,对于特别值得提醒的问题可群发email给所有技术人员。
5、责任:
代码编写者,代码审核者共同对代码的质量承担责任。这样才能保证Code Review不是走过场,其中代码编写者承担主要责任,代码审核者承担次要责任。
6、Code Review必备的文档:
“代码审核规范”文档:记录代码应该遵循的标准。代码审核者根据这些标准来Code Review代码,同时在Code Review过程中不断完善该文档。
分享到:
相关推荐
zyh-code-review.rarzyh-code-review.rarzyh-code-review.rarzyh-code-review.rar
Jupiter是一款开源的Eclipse插件,以XML形式存储review数据,通过SVN/CVS将review结果在团队内共享。一个很方便的功能是其建立了review问题跟具体源代码的对应关系(通过点击review问题列表中的问题可以跳转到对应的...
SAP T-CODE大全,PDF版本,没有版权,仅供参考
Source Insight CodeReview宏,增加使用说明。用于代码评审和统计。
前端项目-angular-ui-codemirror,此指令允许您向textfarea元素添加codemirror。
极狐:2023中国企业研发高效能白皮书-Code Review篇
代码审核,是对应用程序源代码进行系统性检查的工作。它的目的是为了找到并且修复应 用程序在开发阶段存在的一些漏洞或者程序逻辑错误,避免程序漏洞被非法利用给企业带来不必 要的风险。
开源项目-miko-code-bdikaa.zip,Code review please :)
Employing lightweight, tool-based code review of code changes (aka modern code review) has become the norm for a wide variety of open-source and industrial systems. In this paper, we make an ...
开源项目-Code-Hex-pget.zip,在Go中并行下载
开源项目-Code-Hex-updater.zip,Check new github release.
开源项目-Code-Hex-retrygroup.zip,GitHub - Code-Hex/retrygroup
开源项目-Code-Hex-sigctx.zip,Code-Hex/sigctx - Signal for context.Context
开源项目-Code-Hex-gpl.zip,GitHub - Code-Hex/gpl: Update multiple local repositories with parallel
本项目基于c#开发g-code串口控制3d打印机的拍照平台,调用AForge2.2.5驱动usb电子显微镜对产品表面进行高倍放大拍照,源码为原创项目,仅供学习用途。
开源项目-jgautheron-codename-generator.zip,用go编写的代码名生成器
Algorithm-Nayuki-web-published-code.zip,完整的代码文件(*.java/js/pY/CPP/等)在Nayuki项目网站上发布。,算法是为计算机程序高效、彻底地完成任务而创建的一组详细的准则。
开源项目-Code-Hex-go-version-update.zip,GitHub - Code-Hex/go-version-update: Update the version string of your go project.
(R)-Delphi+Interbase-Code-龙邦汽配进销存源码-源代码全-使用手册-钻石精品
开源项目-Code-Hex-exit.zip,Code-Hex/exit - Error makes exit code meaningful