用途:重构代码结构而不改变其行为。在开始重构前与每次改动后,都应保证测试通过。
主要工作流:先确保测试全绿;用 Grep 分析依赖关系;每次只做一处小改动;改动前用 Grep 查找全部引用;每次成功重构后提交;每次改动后再次验证测试通过。
常见重构:提取方法——当一段代码只做一件事时,将其提取为有名称的方法,先用 Grep 确认提取不会破坏调用方,再提取并运行测试;重命名提升清晰度——名称应揭示意图,先用 Grep 找出全部引用,再用 Edit 的 replace_all 做代码库范围重命名,并确认没有遗漏引用;删除死代码——先用 Grep 确认未使用,零引用即可安全删除,若存在引用则追踪其用途。
可处理的坏味道:过长方法提取为更小的方法;过长参数列表引入参数对象;重复代码提取为共享函数(用 Grep 定位重复);依恋情结把方法移到它使用最多的类;数据泥团把相关数据归组为对象;基本类型偏执用值对象替换基本类型。
安全规则:不要同时重构与新增功能;删除或重命名前必须用 Grep 查找全部用法;每次改动后运行测试;使用有针对性的 Edit 操作而非大范围查找替换;频繁提交可用状态。具体平台、安装方式与费用信息暂未提供。