SonarQube中的技术债务用于估算维护性问题的修复工作量,并通过技术债务比率和可维护性评级反映代码维护压力。进行“SonarQube怎么查看技术债务,SonarQube技术债务评估结果怎么看”时,不能只看总时长,还要结合具体问题、新代码范围和评级判断,避免把预计修复工作量直接等同于实际工期。
一、SonarQube怎么查看技术债务
SonarQube会把维护性问题对应的修复成本累加为技术债务。官方定义中,单个问题的修复成本以分钟估算,按天显示时以8小时为一天换算。
1、从项目度量查看总体情况
①进入目标项目,打开【Measures】。
②选择【Maintainability】,查看【Technical Debt】、【Technical Debt Ratio】和【Maintainability Rating】。
③同时查看整体代码与新代码指标,记录两者差异。
④技术债务突然增加时,再进入问题列表定位来源。
【Technical Debt】表示维护性问题预计修复工作量的总和,适合观察债务规模,但不宜单独比较代码规模差异很大的项目。SonarQube的项目【Measures】页面会集中展示包括可维护性在内的代码度量。
2、进入问题列表找出主要来源
①打开【Issues】,将质量类型筛选为【Maintainability】。
②优先查看修复工作量较大的问题,结合规则、文件和代码位置判断影响范围。
③点击具体问题,查看触发原因和修复建议。
④同一规则大量出现时,先确认是否集中在少数模块,再决定批量整改还是调整编码方式。
技术债务来自各个维护性问题的修复成本,因此更重要的是找出贡献工作量最多的问题和模块。SonarQube会依据规则生成维护性问题,并允许开发人员继续查看和处理这些问题。
3、单独查看新代码债务
①切换到【New Code】相关指标。
②查看新代码的技术债务和【Maintainability Rating】。
③如果总体评级较好,但新代码评级下降,优先检查最近新增或修改的代码。
④结合【Quality Gate】确认新代码是否因可维护性条件未通过。
SonarQube分别计算整体代码与新代码的可维护性指标,所以总体评级正常时,新代码仍可能已经出现新的债务。质量门也可以使用新代码的可维护性指标作为判断条件。
二、SonarQube技术债务评估结果怎么看
评估结果主要看技术债务、技术债务比率和可维护性评级。前者反映修复工作量,后两项更适合判断债务相对于代码规模的程度。
1、先正确理解技术债务时长
例如显示【Technical Debt:5d】,表示按照规则修复成本累计后,估算约有5个8小时工作日的修复工作量。
①不要把【5d】直接理解为实际排期一定需要5天。
②检查这5天由少量高成本问题还是大量小问题组成。
③结合代码依赖、测试范围和重构难度,再估算真实整改时间。
因此,技术债务更适合作为整改工作量的参考基准,而不是直接替代项目工时评估。
2、再看技术债务比率
技术债务比率用于比较修复成本与代码开发成本,更适合观察不同版本或不同规模项目。
①查看【Technical Debt Ratio】。
②同一项目不同版本之间,重点观察比例是否持续升高。
③跨项目比较时,确认是否使用相同的开发成本设置。
管理员可以修改用于计算技术债务比率的每行代码开发成本,因此不同SonarQube实例之间的比率未必适合直接横向比较。
3、结合可维护性评级判断
SonarQube默认按照技术债务比率给出A到E评级:A为0%到5%,B为5%到不足10%,C为10%到不足20%,D为20%到不足50%,E为50%及以上;管理员也可以修改评级网格。
①【A】表示债务比例较低,不等于完全没有维护性问题。
②出现【B】或【C】时,继续定位债务集中的规则和模块。
③达到【D】或【E】时,应把高债务区域列入明确的重构计划。
三、SonarQube技术债务结果如何用于整改
技术债务更适合用于排序和趋势判断,而不是单纯追求一个绝对数字。
①优先控制【New Code】不继续增加明显维护性问题。
②旧代码按照修复工作量、代码变更频率和业务关键程度安排整改。
③整改后重新分析,观察债务比率和可维护性评级是否持续改善。
SonarQube的Clean as You Code思路同样强调优先保证新增和修改代码质量,再逐步处理已有代码中的历史技术债务。
总结
SonarQube技术债务的价值,在于帮助团队识别维护压力的来源,并判断债务是在增加还是逐步收敛。相比只看总时长,把新代码表现、债务比率和可维护性评级结合起来,更有利于制定代码治理优先级。如需进一步了解SonarQube技术债务查看、评估结果判断及整改优先级分析方法,欢迎联系咨询。