SuperAPI AI 工具集

nested-conditionals

通用与其它

查看项目

更新于 10-15 22:19

技能介绍

用途:将深层嵌套的 if/else 链改写为自上而下可读的代码,且不改变原有行为。目标是读者理解任一代码路径时,无需在脑中堆叠超过一两个条件。

触发场景:3 层以上 if/else 嵌套;else 块承载主要逻辑、主路径被埋在底部;多个条件守卫同一个核心操作;按类型、角色或状态枚举切换的长 if/else if 链;超过一层的嵌套三元表达式。

主要能力:先诊断嵌套类型(校验型嵌套、主路径被埋、类型/角色/状态切换、复合条件、混合关注点),再选择对应技法。可用技法包括:守卫子句与提前返回(校验前置条件,每行一个守卫,其后保持零嵌套);反转条件(else 分支才是主逻辑时把主路径提升到顶层);抽取具名布尔函数(把难读的复合条件变成有业务含义的纯谓词);策略模式或查找表(用于按枚举分派且分支各自做不同工作的场景);以及按“守卫子句→抽取谓词→策略/查找表”的顺序组合使用。还给出 JavaScript/TypeScript、Python、Java/C#、Go 的语言特定建议,如可空链、字典分派、match/case、switch 表达式、map 分派等。

使用方式:按四步执行——诊断嵌套类型、选择合适技法、写出重构代码、验证并标注。输出要求包含重构前后对比、每个变换只用一种技法、行为完全一致、保留解释“为什么”的注释。最后给出嵌套缩减汇总表(重构前/后最大深度、所用技法),并指出原代码中被保留的隐式行为(如 undefined 返回、fall-through)、对不明确逻辑所做的假设,以及重构后可独立测试的路径。

限制与注意:不要机械地反转每个条件;分支仅 2 到 3 个时不必用策略模式;仅调用一次且名称无实质语义的抽取会增加间接性;扁平化时必须同时追踪新旧路径,避免改变语义(尤其 else if 与独立 if 的差别);不要把不相关的守卫合并为一个 if,以免难以定位触发原因。若发现原代码存在隐式 undefined 或吞掉错误等情况,应明确指出而非在重构中静默修正。

分类判断:该技能面向代码结构重构,属于编程与开发范畴。