用途
该技能适用于审查或调整难以追踪的代码。其核心主张是:可维护性等于读者理解代码所需付出的工作。它不依赖代码行数、圈复杂度或“整洁架构”等代理指标,而是直接关注读者负担。
主要能力
技能要求同时追踪两个独立维度:
- 追踪层数:问题与答案之间存在多少间接层。
- 需记住的状态:读者必须在脑中保留多少隐藏或可变上下文。
两个维度相互独立。一个包含50个全局变量的扁平文件,可能与一个6层适配器栈一样难以推理。因此需要同时防范两者。技能将其视为“守护上下文窗口”的人类类比:读者的工作记忆同样有限。
使用方式
技能给出以下模式:
- 折叠成本大于收益的层:只有一个调用者的包装器、没有第二实现的适配器、从未需要的推测性间接层,将其内联。
- 让相邻层改变抽象:重复相同方法和参数的层会增加读者负担而不带来压缩,应折叠直通层。
- 要求接口压缩:隐藏很少复杂度的宽接口会让读者同时学习表面和实现,优先选择隐藏有意义决策的边界。
- 缩小状态作用域:优先纯函数(返回而非修改)、局部变量而非字段、字段而非模块状态、模块状态而非全局;派生而非同步。
- 在边界处命名不变量,而非在每个消费者中重复,使读者只需学习一次。
在添加层或状态之前,需自问:这是否至少等量减少了其他地方的读者负担?
适用场景
适用于代码审查、重构决策、架构调整,以及任何需要判断某层间接或某份状态是否值得保留的场合。
限制
资料未提供该技能的具体安装命令、平台支持、收费方式或与其他工具的集成细节。