首页/开发/代码质量与评审速查/检查豁免的注释规范
规范与静态检查65 条

检查豁免的注释规范

豁免必须可审计:禁用指令按行、注明规则名与原因、附上跟踪链接(issue/工单),禁止无说明的整文件关闭;定期复查豁免列表,防止长期累积。

检查豁免的注释规范

检查豁免指的是在源码中写注释关闭某条检查规则。它本身没有问题,问题在于豁免往往缺少记录:整文件关闭、不写规则名、不写原因、没有跟踪链接,几年后没人知道是否还能删除。可审计的豁免遵循三个要求:尽量按行而不是按文件、注明被关闭的规则名与原因、关联工单或整改时间,并定期复核豁免清单。

三要素

范围按行优于按文件,整文件关闭需要更强理由
说明写明规则名与关闭原因,说明为什么无法整改
跟踪关联工单编号或整改时间,便于到期复核

典型使用场景

  • 第三方类型缺失:调用处确需放宽类型检查,按行豁免并注明来源
  • 生成代码附近的手写适配:个别规则误报,按行豁免并写原因
  • 历史遗留写法:暂时无法整改,写明整改时间与责任人
  • 平台差异:某些规则在特定运行环境不适用,豁免时附上环境说明
  • 定期治理:按季度清理豁免,已经可以整改的条目直接删除注释

写法对照

写法对照
# 反例:整文件关闭且没有说明
在文件顶部写入禁用全部检查的注释

# 正例:按行关闭,注明规则与原因并附工单号
在目标行上方写注释,指明被关闭的规则名、原因与跟踪编号

豁免质量对照

写法可审计性后续影响
整文件关闭无原因极低后人不敢删也不知道为何存在
按行关闭写规则与原因高到期可判断是否仍需保留
豁免附工单号高可在工单关闭时同步清理
豁免无期限低临时措施固化,问题永久沉积
豁免原因写「暂时」低缺少判断依据,无法复核
豁免也是技术债条目:建议登记在清单里,随模块重构一并消化。清单可与债务偿还的排期配合,避免豁免只在代码里沉默保留。
优先考虑能否从根本上消除豁免:若某条规则在大量位置误报,先评估规则配置或工具版本是否需要调整,而不是逐处添加豁免注释。

落地检查清单

  • 豁免注释包含规则名与原因
  • 整文件关闭的条目有额外审批或说明
  • 豁免清单定期复核,过期项删除
  • 豁免数量作为趋势观察,而不是放任增长

易错点

  • 整文件关闭检查且无原因:后人不敢删除也不知道为何存在,问题永久沉积
  • 豁免无期限:临时措施固化成常态,规则收紧的努力被抵消
  • 豁免原因写「暂时」「历史原因」:缺少判断依据,复核时依然无法决策
  • 把豁免当解决问题的唯一手段:真正需要调整的规则配置或实现方式始终没被处理

数据来源与参考

  • ESLint 文档(禁用规则)、SonarQube 文档(问题豁免流程)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌