用途:这是一条用于评审或重构“难以追踪”的代码的可维护性原则。它把可维护性定义为读者理解代码所需付出的工作,并用两条相互独立的轴来衡量:追踪层数(问题与答案之间的间接层)与需记忆状态(读者必须放在脑中的隐藏或可变上下文)。行数、圈复杂度和“整洁架构”只是代理指标,读者负担才是关键。
主要能力与做法:折叠成本大于收益的层,例如只有一个调用者的包装器、没有第二种实现的适配器、从未需要的投机性间接层,将其内联;让相邻层改变抽象,重复相同方法与参数的透传层只会增加负担,应折叠;要求接口压缩,宽接口若隐藏不了多少复杂度,会让读者同时学习表面与实现,边界应隐藏有意义的决策;缩小状态作用域,优先纯函数(返回而非修改)、局部变量优于字段、字段优于模块状态、模块状态优于全局变量,并尽量派生而非同步;在边界处命名不变量,而非在每个使用方重复,让读者只学一次。
判断标准:新增一层或一份状态前,先问它是否至少等量地降低了别处的读者负担。测试方法是:新读者能否在 30 秒内回答“X 从哪来”和“什么能改变 X”,若不能,就削减层数或状态。
限制:资料未提供具体语言、工具或自动化检查方式,也未提供安装命令、收费信息或平台支持情况。