1988 年,惠普公司(HP)对其软件开发流程进行了一次内部审查,并为自己设定了将代码质量提高十倍的目标。为了实现这一宏伟目标,公司尝试了多种方法。最后,惠普发现,将代码修订纳入开发周期,比客户发现漏洞后再进行修复,能节省更多资金。
可以说,惠普在这样做的时候,软件开发实践还不像今天这样明确和成熟。不过,各组织早已明白,将代码审查纳入软件开发生命周期可以产生积极的效果。本文就讲述了CS专业留学生审查代码的一些技巧。
代码审查核对表是一套预先定义的问题和规则,团队在代码审查过程中将遵循这些问题和规则,从而为代码库批准代码前所需的质量控制提供结构化方法的优势。检查表可包括;
可读性:代码是否包含不必要的注释?
安全性:代码是否会使系统受到网络攻击?
测试覆盖率:是否有多个测试用例需要测试?
架构:代码是否使用封装和模块化来实现关注点分离?
重复使用:代码是否使用了可重复使用的组件、函数和服务?
不衡量代码质量,就无法解决代码质量问题。客观的衡量标准有助于确定审查的有效性、分析流程变更的影响以及预测完成项目所需的小时数。
一些最常用的评审指标包括;
检查率:团队审查特定数量代码的比率,计算方法是用代码行(LoC)除以检查小时数。如果审查代码的时间过长,则可能存在需要解决的可读性问题。
缺陷率: 发现缺陷的频率,计算方法是用缺陷计数除以检查时间。这一指标有助于确定测试程序的有效性;例如,如果程序员发现缺陷的速度很慢,你可能需要更好的测试工具。
缺陷密度: 你在特定数量的代码中发现的缺陷数量,计算方法是将缺陷数量除以数千行代码(kLOC)。缺陷密度可帮助你确定哪些组件比其他组件更容易出现缺陷,从而为易出现缺陷的组件分配更多资源。例如,如果你的一个网络应用程序比同一项目中的其他程序有更多缺陷,你可能需要为其分配更有经验的程序员。
审核代码时,不要只建议需要修复或改进的地方,还要解释开发人员为什么要进行修改。
在开发过程中,你经常会遇到有多种解决方案的问题。你对代码的评论是你的知识和经验的结晶;你可能更喜欢用一种特定的方法来解决问题,而这种方法可能与代码编写者的方法不同。因此,你应该明确说明你的编码选择,以解释你的理由。
例如,假设你正在考虑一段代码,你认为没有必要使用多线程。与其简单地劝阻开发人员不要使用线程,不如解释说并行模型在他们的方案中并不能提供性能优势,因此他们应该将代码改为单线程。
这种方法有两个优点。首先,代码的作者会知道为什么需要进行特定的修改,这将有助于他今后解决类似的问题。其次,由于他已经说明了他的注释的合理性,他就不必再要求说明他的注释的合理性,从而节省了你们双方的时间。
检查超过 400 行代码会对你发现错误的能力产生负面影响,事实上,大多数错误都会在前 200 行中发现。思科(Cisco)在其代码审查综合研究中发现了这一限制,并对行业实践产生了影响。研究发现,当开发人员审查的代码超过 200 行时,发现错误的能力就会下降。
如果你使用 Bitbucket 作为 Git 解决方案,那么请使用 Workzone 这样的应用程序来简化你的源代码管理 (SCM) 工作流程,它可以帮助你计划如何以及何时推送变更,如何在新的拉取请求中添加审核员和组。你还可以在池请求的源代码和分支中设置预定义的组和审阅者,这样它们就会默认包含在新的池请求中。这样,人们就能以简单方便的方式实施 SCM 流程。
另一个能帮助实现代码审查自动化的 Bitbucket 应用程序是 Bitbucket 的 Code Owners。该工具允许你使用代码所有者的概念来确定哪些用户应审查拉取请求。代码所有者是指在特定编码领域(如在 Spring Boot 中开发应用程序)拥有知识和经验的人。使用代码所有者可确保由正确的开发人员审查代码并进行合并验证。
学分高考留学生作业辅导,根据学生的辅导需求匹配背景相符的专业老师,承诺导师真实教育背景。1V1个性化备课,双语教学,实时辅导,讲解相关知识点和解题思路,提供大型作业任务的解决方案,辅导计算机编程语言操作,教授学生高效完成PPT和演讲稿,针对性解决留学生各类作业中遇到的困扰,提高作业成绩!辅导不满意随心退!