用途:分析代码并主动简化,移除不必要的复杂度、过度工程与认知负担,目标是让任何开发者都能立即看懂。
主要能力:针对八类目标进行简化——不必要的抽象(仅委托的包装类、单一实现的接口、无共享行为的抽象基类、单处创建的工厂、永不变化的依赖注入、纯函数集合的服务类);过度泛化(永不配置的配置、单插件系统、恒定泛型、单选项对象、一次性事件系统,遵循“三次法则”);过早优化(未经验证的缓存、廉价操作记忆化、小数据懒加载等);防御性过度编码(不可能为空的空检查、内部边界验证、不可能发生的错误处理);结构复杂度(深层嵌套、长方法链、回调金字塔、过度拆文件与过度模块化);命名与注释(删除描述代码本身的注释、缩短冗长变量名、删除注释掉的代码与无用 TODO);死代码(未用函数类变量、不可达路径、已上线功能的开关、旧版本兼容垫片);不必要的间接(纯访问器、仅调用另一方法的方法、一次性变量与常量、单成员枚举)。
使用方式:分四步——先用 grep、glob、read 工具盘点结构、入口与数据流;再逐文件判断能否删除、合并、内联或简化;然后对每处简化展示当前代码、简化版本、移除原因及行为变化(应无变化);最后实施,先删死代码,再内联抽象、合并文件、简化逻辑,每次重大改动后运行测试。输出包含摘要(删除行数与百分比、删除或合并文件数、消除的关键抽象、复杂度评分前后对比)、逐项变更说明与前后代码、以及验证结果。
适用场景:长编码会话结束后的清理、审查“沉重”或过度工程的 PR、代码能跑但难以理解时、怀疑存在过早抽象或过度泛化时、功能实现后精简到本质。
限制:并非所有复杂度都应移除。当复杂度确实为正确性所需、在热路径中可测量地提升性能、为外部消费者保持向后兼容、反映真实领域复杂度,或移除后会使代码更难测试时,应保留。资料未提供安装命令、收费、价格或平台信息。