重读《重构》二十年后:那些依然锋利的直觉

第一次读《重构》是在 2006 年,当时觉得书里的例子啰嗦:改个函数名也值得写一整节?

十五年后重读,才明白 Martin Fowler 写的不是手法,是节奏——小步、安全、可停顿。

依然锋利的三条直觉

1. 小步快走,每步可停

「每次重构后都运行测试」在今天依然是金科玉律。区别只是,现在测试替我们按下了回车。

2. 坏味道比错误更值得警惕

重复代码、过长函数、发散式变化——这些坏味道不会让程序崩溃,但会让下一个人崩溃。

3. 重构不是重写

重写是承认失败,重构是延续生命。区别在于:你是否始终保持着可发布状态。

一个实战片段

上个月接手一个 400 行的订单函数,没有测试。做法:先给外层行为补特征测试(characterization test),再每 20 分钟抽一个函数出来。三天后,函数从 400 行降到 60 行,行为分毫未动。

书还是那本书,读的人不一样了。

评论 (2)
阿凯2026-08-14 15:21
「重构是延续生命」这句总结得太准了。
活跃用户2026-08-14 15:21
400 行订单函数,看到了我们项目的影子……

发表评论