干货 | 提前在开发阶段暴露代码问题,携程Alchemy代码质量平台
出处:
mp.weixin.qq.com
作者:
Lyan
随着敏捷开发,DevOps开发模式的流行,代码质量分析作为研发质量保证体系的重要组成部分,不仅能有效的降低因频繁迭代带来的故障风险,而且对整个工程团队的效能提升有着巨大的价值。 携程很久以前就已经开始进行DevOps的建设,通过Gitlab CI/CD在开发提交代码触发的流水线pipeline中引入静态扫描、单元测试、集成测试等流程,在开发过程中打造了一套闭环的代码质量保障体系。其中,在静态代码分析阶段引入了SonarQube,并且通过对原有SonarQube代码规范库中的规范进行筛选和扩展,形成了自己的代码规范库。但是在实际应用过程中,我们发现仍然有一些问题需要优化解决: 在开发过程中,代码规范只能通过开发人员自我约束,缺少统一的平台对各应用代码的潜在风险问题统一进行分析,且问题难以定位到开发人员进行治理。 代码单元测试通过率和代码覆盖率都很高,但仍然存在一些在单元测试阶段应被发现的问题未暴露出来,导致上线后出现bug,单元测试用例的质量缺乏有效性及可靠性保证。 随着项目的发展,开发人员为了避免影响已有功能,在开发过程中大量复制粘贴,导致出现很多难以维护的重复代码