大公司是如何保证代码质量的
概述:本文主要介绍保证代码质量的手段和流程
代码质量是公司赖以生存的土壤。产品质量是红线,任何时候都不能逾越。目前代码质量管理的流程中,大部分借助工具实现,可靠性、自动化程度较高。
一、代码质量的四个方面
1. 意识培养 + 成文的规范保证
新员工入职,会进行详尽的培训,主要包含以下内容:
-
- 代码整洁之道
- 编程最佳实践
- 团队自己成文的编码规范(类似开发者手册),涵盖命名、圈复杂度、单元测试和覆盖率等指标性要求
2. 强大的 CI 守护系统
CI(Continuous integration,持续集成)在企业级开发中扮演着非常重要的角色。所谓 CI,简单的理解就是:我们每次提交代码时,都会做各种各样的检查和测试以保证质量(CI 防护网),通过之后才有可能将代码集成到代码库的主干上去。由于这个过程很频繁,所以叫做持续集成。现在还发展出了 CD(持续部署)。
实际工作流程如下:
- 自查语法,并在本地执行各种检查。包括但不限于圈复杂度、PCLint、安全分析、单元测试、代码覆盖率等等。
- 本地检查通过后,再推代码入库。此时会触发 CI 防护。CI 自动合并代码,将各个库的代码放到同一目录下(或者通过软连接来实现),然后编译。编译之后做静态检查。如果不能通过,则返回至提交者。
分层多维度CI:每次提交都会进行 CI 防护(Verify CI),每天凌晨执行 Daily CI。Daily CI 比 Verify CI 更加全面,Verify CI 通常是做增量检查,Daily CI 则是全量检查。
3. 严格的 code review
接上述流程,如果 CI 检查通过,流程走到代码审查。代码审查通常由 team leader 或骨干成员执行,如通过审查,则提交至主干,如未通过,则返回提交者继续修改。
4. 强大的度量系统
每人每月的代码量,譬如增删多少行,净增多少行,都有详细报表。CI 通过率也会有详细统计。
二、整体流程图
补充资料
1. 圈复杂度和代码质量优化;
2. PCLint 入门;
3. 代码度量工具——SourceMonitor的学习和使用;