所谓重构是这样一个过程:「在不改变代码外在行为的前提下,对代码做出修改,以改进程序的内部结构」。重构是一种有纪律的、经过训练的、有条不紊的程序整理方法,可以将整理过程中不小心引入错误的机率降到最低。本质上说,重构就是「在代码写好之后改进它的设计」。
重构目的
- 改善设计,提高适应性
- 易维护易扩展
- 找出bug,消除潜在bug
- 编码高效
重构原理
在不破坏可察功能的前提下,借由搬移、提炼、打散、凝聚…,改善事物的体质。
重构最佳实践方式
一次一小步的修改代码,减少风险
严谨的重构准则和严密的重构手 法,「稳定中求发展」
- 可靠的测试
- 切分长函数
- 改更清晰明确的名称
- 去除临时变量
注意有效优化:对循环耗时进行评测(profile),避免循环耗时过多降低性能 - 按功能提炼函数
- 清理代码
- 重复代码合而为一,提炼函数
- 去除未来式抽象类,预留参数,过多中间层
- 清晰的名字
重构是这样一个过程:它在一个目前可运行的程序上进行,企图在「不改变程序行为」的情况下赋予上述美好性质,使我们能够继续保持高速开发,从而增加程序的价值。
如果你对大多数程序进行分析,你会发现它把大半时间都耗费在一小半代码身上。如果你一视同仁地优化所有代码,90%的优化工作都是白费劲儿,由于你把注意力都集中在热点上,较少的工作量便可显现较好的成果。
自动化重构工具
重构的基本技巧——小步前进、频繁测试
替换一个巨大而复杂的算法是非常困难的,只有先将它分解为较简单的小型函数,然后你才能很有把握地进行算法替换工作。