首页/开发/代码质量与评审速查/顺手偿还:童子军规则的债务应用
技术债与度量63 条

顺手偿还:童子军规则的债务应用

每次改动顺手清理所在局部:命名、重复、死代码、缺小测;不追求一次偿清,靠持续小额投入降低利息;与债务台账配合——每次触达热点模块时清一格。

顺手偿还是什么

童子军规则在债务上的应用:每次改动顺手清理所在局部——改个名字、去掉一处重复、补一个小测试、删掉一段死代码。它不追求一次偿清,而靠持续的小额投入压低利息;配合债务台账效果更好——每次触达热点模块时,顺手清掉台账里的一格。

基本信息

范围本次改动直接接触的局部
动作一件小事:改名 / 提取 / 补测 / 删死码
边界不扩大为无关模块的重构
记录完成的额度回填债务台账,避免同一处反复清理

适合顺手做的事

  • 把本次改到的变量或函数改成更贴切的名字
  • 删除本次改动路径上已经无用的分支与开关
  • 为本次修改的函数补一个覆盖新逻辑的断言
  • 把重复出现两次的片段提取为一个方法
  • 把魔法值替换为命名常量
  • 为将要动用的模糊逻辑补一段注释或一个示例测试

PR 中顺手偿还示例

PR 中顺手偿还示例
本 PR:新增导出格式

顺手(都在本次改动路径上):
- 提取重复的编码探测函数(3 处 → 1 处)
- 删除上一版本遗留的开关分支
- 为新增的解析函数补 2 个单测
- 把 resp 改名为 exportResponse

不顺手(另开 PR):
- 重写整个报表模块的取数逻辑

范围判断表

动作同 PR 顺手做另开 PR
改名:本次改动路径内可以—
补测:本次修改的函数可以—
删死码:本次已触达的分支可以—
重构同目录但未触达的类—建议
跨模块替换公共组件—必须
调整公共接口签名—必须
范围判断的实用标准:顺手改动与原改动是否落在同目录、同一测试范围、同一个可独立回滚的单位里。三条都满足,就是顺手;有一条不满足,就该拆出去。
顺手偿还的最大收益是让改进不再需要专门立项。坚持几个迭代后,改动频繁的模块会因为每次都被顺手清理而明显变好;改动很少的模块则不必花力气,利息本来就低。

易错点

  • 顺手改扩大化:PR 混入大量无关改动,评审难度上升,回滚粒度变粗
  • 只在热点外顺手:真正拖慢交付的模块没人碰,利息继续累积
  • 顺手清理不留证据:台账不更新,下一次又要重新判断哪些已还
  • 把顺手当成必须:小改动被拖成大改动,交付节奏被拖慢

数据来源与参考

  • 《Clean Code》童子军规则与债务偿还实践结合
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌