重构模式技能用于在保持外部行为不变的前提下改善代码内部结构。其黄金法则是:重构前后测试均须通过,且绝不在同一次提交中既重构又新增功能。
适用时机:功能难以添加时先重构再添加;同一缺陷出现两次时重构以防复发;代码难以理解时重构以提升清晰度;出现重复代码、函数过长(超过30行)时进行抽取与复用。
不适用情形:无测试且时间紧张、代码不会再变动、临近发布、需改动超过70%(此时应重写)以及探索性或原型代码。
主要手法包括:提取函数(Extract Function),将完成单一逻辑的代码块命名并抽出;提取变量(Extract Variable),为复杂表达式命名以揭示意图;按意图重命名(Rename for Intent),让名称说明“做什么”而非“怎么做”;以多态替换条件判断(Replace Conditional with Polymorphism);用卫语句替代嵌套条件(Guard Clauses)。
技能还提供代码异味到重构手法的对应表,例如长参数列表对应引入参数对象、依恋情结对应移动函数、大类对应提取类、基本类型偏执对应以对象替换基本类型等,并给出重构与重写的决策依据。
安全流程为:提交当前状态、运行全部测试建立基线、做一处小改动、运行测试、提交带描述的信息,然后重复。VS Code 提供自动化重构支持:重命名符号为 F2,提取函数、提取变量、内联变量、移动到新文件通过 Ctrl+Shift+R 菜单完成;优先使用 IDE 重构而非手动编辑,可减少错误并自动更新引用。
限制:资料未提供该技能的安装命令、许可与收费信息、具体平台支持范围,暂未提供。