该技能的核心用途是:在审查或塑造难以追踪的代码时,应用「最小化读者负担」的原则。可维护性被定义为读者理解代码所需付出的工作量。
主要能力与关注维度:
该原则要求追踪两个维度:需要追踪的层级(问题与答案之间的间接层数量),以及需要记住的状态(读者必须记在脑中的隐藏或可变上下文)。代码行数、圈复杂度和「清晰架构」被视为替代指标,真正重要的是读者负担。这两个维度相互独立:一个包含 50 个全局变量的扁平文件,可能与六层适配器栈同样难以推理。两者都要防范。它被描述为「守护上下文窗口」在人类层面的类比:读者的工作记忆同样是有限的。
使用方式与具体主张:
折叠那些成本大于收益的层级:只有一个调用者的包装器、没有第二实现的适配器、从未需要的投机性间接层,将它们内联。让相邻层级改变抽象:若某一层重复相同的方法和参数,只会增加读者负担而没有压缩效果,应折叠这类透传层。要求接口压缩:一个掩盖不了多少复杂度的宽接口,会让读者既要学习表层又要学习实现;优先选择能隐藏有意义决策的边界。缩小状态作用范围:优先使用纯函数(返回而非修改)、局部变量而非字段、字段而非模块状态、模块状态而非全局变量;用派生代替同步。在边界处命名不变量,而不是在每个消费者中重复,使读者只需学习一次。在添加一层或一个状态之前先问:它是否至少等量地减少别处的读者负担?
适用场景:
适用于需要审查或塑造难以追踪的代码时。
限制:
资料未提供具体的适用语言、平台或工具集成信息。检验标准是:新读者能否在 30 秒内回答「X 从哪来」和「什么能改变 X」;若不能,就削减层级或状态。