一、代码审查的作用
二、代码常规审查清单
三、代码审查的方式
四、错误报告
五、对于Upsource的基本功能的小结
最近接手这方面的事情,还在摸索中,做了一点小结。
一、代码审查的作用:
1、提高代码质量。
通过代码审查来发现bug及代码中的不规范,这是不容置疑的,通过代码审查,代码将更加整洁,有更好的注释,更好的程序结构。
2、提高开发者开发水平。
开发者知道自己编写的代码会被同事审查,将会更加认真的编写代码,也将会督促开者不断地学习、向有经验的同事请教。
3、提高程序的可维护性。
一份程序代码将会有更多的同事熟悉,更好的代码质量,自然地也增加程序的可维护性。
4、提高开发者的对编码的责任感。
5、传播知识
在很多的开发团队里,经常每一个人负责一个核心模块,每个人都只关注他自己的那个模块。除非是同事的模块影响了自己的程序,他们从不相互交流。这种情况的后果是,每个模块只有一个人熟悉里面的代码。通过代码审查,至少会有两个人熟悉这些程序——作者,以及审查者。审查者并不能像程序的作者一样对程序十分了解——但他会熟悉程序的设计和架构,这是极其重要的。
二、代码常规审查清单:
代码能正常工作吗?能否实现预期功能、逻辑是否正确等
代码符合编程规范否?
是否存在多余重复的代码?
代码是否尽可能模块化了?
是否有可以被替换的全局变量?
是否有被注释掉的代码?
循环是否设置了长度和正确的终止条件?
是否有可以被库函数替换的代码?
是否有可以删除的日志或者调试代码?
代码能否进行测试?
根据代码常规审查清单进行代码审查,根据这些审查清单可以针对性的去选择相应的审查工具。
三、代码审查的方式;
1、 正式的代码审查:
最流行的方式是范根检查法:计划(Planning),概述(Overview),准备(Preparation),召开检查会议(Inspection Meeting),重做(Rework),和追查(Follow-up)。基本的思想是:预先制定好每一个步骤所需要达到的输出要求。
缺陷:流程繁琐,开销大。一般用于关于生命安全的代码项目
2、 轻量级代码审查
(1)瞬时代码审查(结对编程)
适用于两个有相似经验水平的开发者处理复杂的业务问题的情况
(2)同步代码审查(即时代码审查)
人工进行代码审查,一人写一人即时看(适用于小规模项目程序),用于审查者不清楚任务的目标时,需要开发者向其进行解释的这种情况。
(3)异步代码审查(工具支持代码审查,利用各种代码审查工具)
避免了强行切换思路带来的问题,对大多数用例都工作得很好。(目前最常用的代码审查方式)
(4)偶尔代码审查(基于会议计划的代码审查)
适用于初建项目团队。
四、错误报告
代码审査问题表应写明所査出的错误类型、错误类别、错误严重程度、错误位置、错误原因。错误类型有文档错误、编程语言错误、逻辑错误、接口错误、数据使用错误、编程风格不当、软件多余物,错误类别有遗漏、错误、多余。
五、对于Upsource的基本功能的小结
经过一系列的查找资料、总结资料和环境的下载安装配置等流程,对于Upsource的大体功能完成了初步试用,现作以下小结:
<一>、安装
安装过程稍有些复杂、时间较长,服务端安装完毕,还需要从网页里面访问触发初始化,这个过程很漫长。需要搭配代码托管工具使用,这里试用采用的是Git。
<二>、使用过程
1、免费使用限10名用户,初始自动分配一个host和一个guest,后续还可增加8个guest
2、界面简单,使用简单
3、个性化小功能很实用:邮件提醒、支持直接邮件进行修改、项目审查者节点关系图(可以表现出项目审查者之间联系的频率)、项目树状图(获得项目结构的概览,然后找出具有异常维护模式的文件和目录)。
4、提交历史记录:Upsource可以列出代码库中的最近变更列表。对于每个提交,提交消息、作者、时间和提交ID都立即可见,以差异视图的快速链接形式显示。
5、广泛的VCS支持:Git、Mercurial、Subversion 和 Perforce