在项目开发的过程中,代码质量管理是非常重要的一个环节,项目中代码质量的高低直接影响着整个开发团队的工作效率。虽然代码质量本身并没有特别明确的量化指标,而且根据公司发展的不同阶段,团队规模的不同大小,项目的不同性质等,对代码质量的要求也不尽相同,但如果一个团队的代码质量过低,所带来的问题是相同的,前 Google 工程师王争总结过以下几点:
▶️ 添加或修改一个简单功能时,涉及要修改的地方特别多,而且很分散
▶️ 代码不可复用:相似的功能无法复用代码,要重新开发
▶️ 线上 Bug 频发,排错困难,修复难度大,时间长
▶️ 有很多奇怪的代码,代码读不懂,新人无法很快了解代码
▶️ 代码中坑特别多,不敢大动,一不小心就踩坑
这些问题单纯地依靠开发后的人工测试是无法发现的,只能通过代码审查去发现和解决。进行代码审查时,除了严格执行代码规范、编写单元测试、必须的 Code Review、代码模块化等方法以外,有一件趁手的工具也是必不可少的。Gitee 现已正式推出代码质量分析工具 Gitee Scan,提供自动化的代码质量扫描和分析服务,帮助研发团队快速发现和定位问题,更高效地审查代码、提升代码质量。Gitee Scan 可以同时从代码缺陷和代码规范两个方面对代码进行扫描,快速定位错误代码和漏洞的位置,帮助开发人员将更多精力放在解决问题而不是发现问题上。目前 Gitee Scan 支持的语言有 Java、Python、PHP、C、C++、JavaScript、Go ,此外,还针对 Android 特性提供了独立的扫描支持。在使用 Gitee Scan 时,用户可以通过两种方式发起代码质量分析:- 开启新建 Pull Request 增量代码自动扫描
当开发人员想要对以前的代码进行错误检查时,可以选择进行全量扫描。全量扫描时,用户可以直接选择某个分支直接进行扫描操作并产出报告。报告中包含了缺陷报告及规范报告,在缺陷报告中,Gitee Scan 会通过 Bug、安全漏洞以及代码异味三个类别将问题分类,方便开发人员有针对性地修改。如下图所示,报告中已经精准地定位到了错误代码的位置以及其可能的危险程度,开发人员直接进行修改即可。在开发人员想要对后续产生的新代码进行错误检查时,可以选择进行增量扫描。Gitee Scan 增量扫描与全量扫描原理相同,但增量扫描更加自动化。开启增量扫描的开关后,企业内的所有分支在接受 Pull Request 前都会经过 Gitee Scan 的自动扫描并产出报告,每提交一次 Pull Request 后都会对提交的代码进行一次自动扫描。测试结果表明,针对同一份代码,Gitee Scan 所扫描出的漏洞数量比同类型产品 SonarQube 多出 41.7%,并且 Gitee Scan 扫描后提供了代码评级及代码规范报告,用户可以对代码质量有更直观地了解。在后续的更新中,Giee Scan 会增加更多语言的支持以及更加深度的扫描能力,并且后续计划增加基于 CVE 的依赖项漏洞扫描,进一步帮助用户提升研发质量和效率。Gitee Scan 已对 Gitee 企业版付费客户开放功能