持续提升代码质量 任重而道远
Posted 京东信息化+
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了持续提升代码质量 任重而道远相关的知识,希望对你有一定的参考价值。
当清晨第一缕阳光洒进窗户,那是学生对老师的深情祝福。值此教师节之际,谨向部门分享讲师们致以诚挚的祝福和感谢:教师节快乐!分享快乐!
9月11日上午,京东企业信息化部部门分享活动持续火热进行中,“大咖教学拜师学艺”系列第二期分享顺利召开。本期分享由研发质量部、研发管理部共同推出。师者,所以传道授业解惑也。负责部门代码质量平台建设的资深工程师杨朔结合研发痛点讲述了搭建企业信息化部代码质量管理平台的初衷。他思路清晰,娓娓道来,同时讲述了提升代码质量的必要性和紧迫性,以及部门代码质量管理的规则变迁、平台变迁、数据变迁、文化变迁和阶段演进。内容精彩,不容错过。
01
你了解的代码质量管理平台
在面临业务压力时,研发团队通常会倾向于通过增加人力来缓解压力。但增加人力后,由于编码风格不同、沟通成本上升等问题反而容易使代码质量变差,开发效率下降,从而再度增大业务压力。这种代码质量越来越差的恶性循环是软件开发领域的普遍痛点。
为了解决研发痛点,填补一级部门没有统一的代码质量管理平台的空白,填补无法自动检测代码合规情况、无法对应用代码质量进行有效控制的空白,研发质量部自2017年11月开始进行部门级的代码质量管理实践,着手搭建代码质量管理平台。
相信不少研发同事每周会收到这种提醒修复代码违规的邮件。目前研发质量部每天凌晨定时扫描隶属于企业信息化部的近500个代码库,每周一、三、五做一次数据统计(包括本周新增的阻断级违规、上周未修复的阻断级违规、项目引用的高危组件),并将结果发送给相应的开发人员,以便提醒他们及时修复违规。除此以外还会通过通讯工具推动修复代码质量问题。
目前代码质量管理平台可以提供的衡量代码质量的一些关键指标包括:可靠性(Bug类型违规)、安全性(漏洞类型违规)、可维护性(坏味道类型违规)、重复率、重复行数、重复代码块数、复杂度。目前本部门接入代码质量管理平台的源码库480个左右(覆盖率超过90%),其他部门接入源码库51个;代码检查效果良好,规则误报率较低,研发同学对编码规则认可度较高。
02
罗马不是一天建成的
这样一款专业高效又匹配部门情况的代码质量管理平台的建立是一个漫长和波折的过程,在部门代码质量管理实践的道路上,取得了阶段性的成果,部门全员不同程度地参与/见证了四个阶段演进:规范化、自动化、定制化、流程化,目前正由定制化向流程化过渡。
03
规则变迁、平台变迁、数据变迁
虽然代码质量管理平台已较成熟,得到了研发同事的认可,但研发质量部同事不满于现状,为代码质量提升事业提出了更高的要求,在持续改进的道路上经历了规则变迁、平台变迁、数据变迁,包括:
规则库:Sonar-java -> 第三方高危组件规则 -> java编码规则 -> 性能优化,并计划于近期实现Object-C编码规则的集成
触发方式:定时触发 -> CI触发,并计划于短期内实现代码commit/merge触发
查看违规方式:SonarQube平台 -> TAAS平台,并计划于短期内实现通过代码扫描平台、质量交付平台查看违规
代码质量数据:违规个数统计 -> 违规规则分布统计 -> 违规趋势统计 -> 多维度代码质量数据
04
蝴蝶效应,多方受益
在代码质量提升的道路上,企业信息化部实现了代码质量规范从无到有的突破,研发人员从被动修复到主动关注代码质量并制定编码规范。在这个过程中,部门内部逐步形成了关注代码质量的氛围,这是非常难能可贵的。与此同时研发团队的凝聚力、交付产品的质量都在无形中得到了提升,进而最终提升业务满意度。
在代码质量管理的道路上,京东企业信息化部一直在努力,提升代码质量不只需要依靠研发质量部的专业支持,同时更需要每位研发同事共同努力。
05
任重道远,持之以恒,持续改进
通过杨朔专业讲述,越来越多的研发同事意识到了代码质量的重要性。杨朔趁热打铁,讲述了代码质量管理事业的后续规划,同时呼吁各部门研发同事共同努力,将大量的专家经验沉淀为编码规范,增加自定义规则在规则库中的比重。
在提升代码质量、提升业务满意度方面,我们需要持之以恒,持续改进,没有最好只有更优。
京东企业信息化部“大咖教学拜师学艺”系列分享第二期分享活动圆满收官,共同期待后续有更多更优秀的内容在部门内部进行交流,沉淀组织资产,传承部门优秀实践经验。
以上是关于持续提升代码质量 任重而道远的主要内容,如果未能解决你的问题,请参考以下文章