重构:确保加入新功能后代码仍保持简单,从而保证简单的代码仍然能够运行所有的测试。
作为新员工,入职后的很长一段时间都是在阅读“前辈”们的设计文档和程序代码,在维护以前的项目。这原本是最快捷的学习过程,然而不幸的是我们常常看到的是与实物不一致的设计文档和纷乱、繁杂的代码。代码中的变量常常不知所谓,定义的变量、方法不知道在哪里调用,不知道什么作用。偶尔看到的注释却发现除了里面除了注释是谁增加的,却不知道对应的是哪些修改的代码……越看越糊涂,怎么办?干脆自己重新写一个吧!
我在处理入库的代码时询问提交人某个目录里面的代码有什么用时,得到的答案却往往是“不知道”。生命周期越长的程序,里面的目录和文件越是繁杂,从名称上很难看出文件之间是什么关系,类似以test这样的无意义的名称命名的文件随处可见。
关于重构,是一个相对复杂的话题,通常按照对一个问题的考虑思路是这样这样论述的:重构是什么?为什么要重构?怎么重构?