用途:这是一个代码评审与重构指南,处理的不是机械式清理,而是代码量中来自判断与建模缺口的部分,例如错误的抽象选择、隐藏的语义重复、防御习惯与过早泛化。它明确跳过 knip、eslint、ruff、tsc --noUnusedLocals 或格式化工具已能捕获的内容,属于机械清理之后的第二遍检查。
主要能力:按优先级分为八类规则。1) 重复造轮子(CRITICAL):如平台/标准库已提供的集合操作、日期时间、深比较、状态机与内置数据结构。2) 错误的框架(CRITICAL):无身份时用函数而非类、Manager/Helper/Util 其实应是动词、以组合替代继承、数据优先于过程、按内聚轴拆分巨型函数。3) 隐藏重复(HIGH):同形状的并行类型、近孪生函数、镜像分支、配置而非复制、跨层同形状。4) 存储派生状态(HIGH):计算可得的不存储、单一事实来源、从数据派生布尔值、缓存用 getter 而非字段、URL 即状态。5) 过程式重建(MEDIUM-HIGH):管道优于变异构建器、if 链改查找表、用标准遍历替代手写递归、声明式模板、独立 await 并行化。6) 投机泛化(MEDIUM):单一实现的接口、单一选项包、布尔标志驱动路径、无扩展者的扩展点、只用一种类型的泛型。7) 防御过度(MEDIUM):防御不可能状态、边界校验一次、让异常传播、修复导致空检查的建模。8) 类型系统利用不足(LOW-MEDIUM):可辨识联合、字面量联合、不用 any 消音、品牌类型避免重复校验、穷尽 switch、默认只读。
使用方式:先跑机械式清理,再读取代码意图,按优先级顺序走查各分类(先重复造轮子与框架,再重复与派生状态,然后过程式重建与投机泛化,最后防御与类型),提出最小 diff 的转换并验证行为不变、测试仍通过;不要把不相关改动捆绑在一起。
适用场景:评审 PR 时问「能否更简单」、重构只增体积未增能力、审计「感觉沉重」的模块、熟悉陌生代码库、设计新模块时避免过度抽象,以及作为 knip/eslint/ruff 之上的判断层。
限制:不用于 linter/格式化已覆盖的机械清理、算法与性能调优、或与心智模型缺口无关的一般清理。当代码未达到「三次规则」、属于已知例外、重构是缺乏测试安全网的大规模高风险重写,或性能敏感热路径中「更简单」形式有可测成本时不应套用。