写于 2016-12-20 。

早上看完了《重构:改善既有代码的设计》一书。有些失望。或许是这本书面世太久,里面的方法到如今已经成了常识。但总的来说是一本可以快速浏览一遍的书,至少会坚定自己的一个信心:当代码经过自己的手时,它应该变得比之前更好。不要害怕重构,因为重构是一步一步来的,确保步子不太大,确保每一小步的正确性。然后一遍一遍来。花在重构上的时间,从更长的眼光来看,终将会为我们带来更高的开发效率,节省更多的时间。

我觉得重构的最核心理念是三条,一是更好的可读性,二是更合适的抽象,三是可测试性。

每个人都知道,代码更多是用来读而非运行的。可读性良好的代码,是优秀程序的基本要求,这个要求其实不低,尤其是在不对地修改迭代中,保持和改善代码的可读性,并不是那么容易。

我觉得,在可读性之上,建立合适的抽象,这才是程序员应该发挥我们聪明才智的地方。好的抽象能恰到好处地表达出程序的意图,让代码通用、容易扩展维护,同时又不至于抽象得太过导致得不偿失。

良好的设计应该是测试友好的,你能很容易地为一个方法添加单元测试。测试友好的代码天生就是解耦的鲁棒的,而在自动测试上所多花费的每一分钟,长期来看都会以多得多的回报率带来整体开发效率的提升。