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