代码简化
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/code-simplification-3wcn。
技能介绍
要解决的问题
AI 编码代理往往能快速产出“跑通”的代码,但复杂实现也会随之进入仓库:深层嵌套、长函数、布尔参数、重复条件、误导性命名,以及为抽象而抽象的包装。Review 时问题通常不是功能错误,而是代码表达过重,导致改动、排查和交接成本偏高。这个技能用于在功能可用、测试通过后做一次有约束的简化,目标是让新成员更快理解,而不是单纯减少行数。
核心能力与流程
技能把简化拆成五个原则:保持行为完全一致,不改输入、输出、副作用、错误和边界条件;遵循项目约定,与既有风格一致;清晰优先于精巧;避免过度简化,不要过度内联、合并无关逻辑或删除为可扩展性、可测试性存在的抽象;只处理近期改动,避免顺手重构无关代码。
流程分为四步。先用 Chesterton's Fence 理解每段逻辑为何存在,再判断原因是否仍成立。接着按结构化信号找简化点:三层以上嵌套、50 行以上函数、嵌套三元、布尔参数、重复条件、泛化命名、冗余类型断言等。修改时一次只做一处,每次变更后跑测试;重构应与功能或修复分开提交。若改动超过 500 行,优先用 codemod、脚本或 AST 变换自动化。最后整体复核,确认 diff 干净、无错误处理削弱、无死代码残留。
适用边界
它不是万能整理器。代码已经清晰、还没看懂逻辑、性能关键路径、或模块准备整体重写时,不应强行简化。若“简化”需要改测试才能通过、删掉错误处理、或让代码更难读,就应回退。
使用场景
- 功能开发完成且测试通过后,发现 AI 生成的代码嵌套过深或函数过长,需要做一次不改变行为的可读性重构。
- 代码评审中指出实现过于臃肿或命名不清,需要在合并前提取守卫子句并重命名误导性变量。
- 合并上游分支后产生了重复逻辑和冗余类型断言,需要清理死代码并将分散的相关逻辑收敛到共享函数。
适合人员
- 负责审查 AI 生成代码的后端工程师,需要确保重构后逻辑不变且符合团队编码规范。
- 在时间压力下交付功能的应用开发者,希望清理因赶工留下的深层嵌套和长函数。
- 维护遗留系统并准备模块重构的技术负责人,需要在动代码前理清每段逻辑存在的原因。