代码审查流程与要点
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
5.3软件设计:案例1
1. 工程命名有问题:该项目没有引入插件框架,
这个工程是从其他项目拷贝而来,但是工程名
称没有修改正确; 2. 都是ArcGIS工具类,但是分散在2个工程中,
应该把第2个工程中的工具类移到第1个工程中。
copyright©2005leador
6.代码审查流程
编写代码审查 计划书 提交代码审查申请单 代码审查入口检查 实施代码审查 建立代码审查 缺陷库 输出代码审查报告
copyright©2005leador
5.1基本规范:案例1
1. 成员变量命名不规范;
2. 成员变量访问权限申明方式不一致;
3. 代码之间的空行不符合规范;
copyright©2005leador
4. 部分成员变量只有申明,没有初始化; 5. 没有注释
5.1基本规范:案例2
1. 一个代码文件中包含多个类; 2. 一个代码文件中代码过长; 3. 有的类中成员变量有初始值,有的没有; 4. 有的类有注释, 有的没有。
copyright©2005leador
3.代码审查的好处
提高代码质量
及早发现潜在缺陷,降低修改/弥补缺陷的成本
促进团队内部知识共享,提高团队的整体水平 评审过程对于评审人员来说,也是一种思路重构的过程,帮助更多的 人理解系统 是一种传递知识的手段,可以让其它并不熟悉代码的人知道作者的意
代码审查流程与要点
生产平台组 2016-1-23 立得空间信息技术股份有限公司
1
copyright©2005leador
目录
1. 概述 2. 代码审查的目的 6.代码审查流程 7.代码审查工具
3. 代码审查的好处
4. 代码审查的局限性 5. 代码审查内容
copyright©2005leador
1.概述
编写代码审查 总结报告
是
存在缺陷
存档 代码 整改
确定编码规范
copyright©2005leador
否
归档
立项阶段
研制阶段
结项阶段
6.1立项阶段
1. 编写代码审查计划书:描述项目或产品在研制过程中进
行代码审查活动的时间与周期,明确项目开发负责人、
代码审查负责人; 2. 建立代码审查缺陷库:在项目或产品研制开始前开发负 责人按照部门代码审查缺陷库模板建立代码审查缺陷库, 建立所有开发人员和审查人员的权限; 3. 确定编码规范:开发负责人确定本项目或产品研制需遵 循的编码规范,并上传至代码审查缺陷库中。
copyright©2005leador
第三方库或框架的使用是否合理。
5.1基本规范
项目在立项时需确定本项目所遵循的编码规范,如有特 殊要求,可在通用编码规范基础上进行适当修改。纯
C++/VC++开发项目应遵守《C++编码规范》,C#开发项目
应遵守《C#编码规范》,混合开发项目应遵守两种编码规范。
copyright©2005leador
copyright©2005leador
图和想法,从而可以在以后轻松维护代码
鼓励程序员们相互学习对方的长处和有点 可以被用来确认设计和实现是否合理,检查设计是否清楚和简单
copyright©2005leador
4.代码审查的局限
无法完全验证逻辑是否正确,无法检查功能是否完整;
无法检测代码中遗漏的路径和数据敏感性错误
不验证规格的正确性
copyright©2005leadorHale Waihona Puke Baidu
5.2程序逻辑:案例1
1. 异常淹没:异常捕获后没有进行任何处理,也没有将异常抛出。
copyright©2005leador
5.2程序逻辑:案例2
1. 提示框不符合要求:没有标题,没有显示图标(提示、警告、借误等)。
2. 提示表意不清,应明确显示是什么结点没有选中,而且结点是程序语言,要
6.3结项阶段
1. 项目结项时,代码审查负责人编写《代码审查总结报告》
并向部门作总结报告,帮助部门整理该项目研制过程中
出现的代码质量问题,其他项目组应以此为鉴,杜绝出 现类似问题。
copyright©2005leador
7.代码审查工具
1. SourceAnalysis (StyleCop):代码自动化检查工具,检 查代码是否按照制定的编辑规则进行编码,可与Visual Studio集成。
代价高昂,对于以上局限,需要编写正确的详尽的测试用
例,进行功能测试和集成测试来弥补。
copyright©2005leador
5.审查内容
代码审查分3个等级: 基本规范:检查代码编写是否满足编码规范; 程序逻辑:检查基本的程序逻辑、性能、安全性等是否 存在问题,用户交互流程是否满足正常的软件使用要求; 软件设计:检查软件的基础设计、模块之间的耦合关系、
Code Review代码审查是指软件开发过程中,通过对 源代码进行系统性检查的过程。通常的目的是查找各种缺 陷,包括代码缺陷、功能实现问题、编码合理性、性能优 化等;保证软件总体质量和提高开发者自身水平。
copyright©2005leador
2.代码审查的目的
检查开发人员是否遵守开发规范中的规定 检查代码是否存在审定表中的错误 检查代码是否存在逻辑错误、性能低下或安全问题
copyright©2005leador
6.2研制阶段
1. 提交代码审查申请单:到达项目/产品代码审查时间节点
时,开发负责人确定代码基线,提交代码审查申请单给
代码审查负责人; 2. 代码审查入品检查:代码审查负责人检查代码库中的代 码基线是否满足代码审查条件,如不满足,退回至开发 负责人; 3. 实施代码审查:审查负责人分配代码审查任务给审查人 员,审查人员利用工具或手动按照编码规范与经验对代
copyright©2005leador
5.2程序逻辑
程序逻辑检查软件基本的程序逻辑是否合理,包括循 环、递归、线程、事务等代码结构上的合理性。还包括异
常处理、性能、重复代码、可优化代码,无效代码等的检
查。在代码程度上检查用户界面操作逻辑是否正确、布局 是否合理、用户提示是否简捷明了、是否存在重复或无用 功能等。
copyright©2005leador
谢谢!
copyright©2005leador
人有了知识,就会具备各种分析能力, 明辨是非的能力。 所以我们要勤恳读书,广泛阅读, 古人说“书中自有黄金屋。 ”通过阅读科技书籍,我们能丰富知识, 培养逻辑思维能力; 通过阅读文学作品,我们能提高文学鉴赏水平, 培养文学情趣; 通过阅读报刊,我们能增长见识,扩大自己的知识面。 有许多书籍还能培养我们的道德情操, 给我们巨大的精神力量, 鼓舞我们前进。
翻译成用户语言,如:未选中兵要,请先选择一个兵要!。
copyright©2005leador
5.3软件设计
软件设计检查软件的层次结构划分是否合理,UI层、 逻辑层、数据层、组件层等是否清晰,有无混淆;软件在
性能设计、安全性设计、易维护性设计、健壮性设计等设
计方面是否合理。
copyright©2005leador
copyright©2005leador
码进行审查。
6.2研制阶段
4. 输出代码审查报告:代码审查完成后,审查负责人编写
代码审查报告至开发负责人;
5. 代码整改: 《代码审查报告》中如果存在不符合项,开 发负责人按照不符合项分配代码整改任务;整改完成后 重复1~5过程。
copyright©2005leador