修改代码艺术的叨唠
这篇书评可能有关键情节透露
## 读书缘由与标题评论
读书的时候就想读这本书了,后面一直没有读。想读的时候,发现各个买书平台都不卖或者卖都是忒贵。有一次在群里面问群友们:有没有刘未鹏先生翻译版本?他们说看的都是新版。由于新版的作者不是很了解,加上对刘未鹏先生写的博客一直有看,他翻译的应该也不会差到哪里去。后来在二手书店买了一本。
工作了,面对的一大堆遗留代码,而各种需求都是如何优化,如何添加新功能。如何面对遗留代码的问题自然而然就冒出来了。《修改代码的艺术》看书名感觉有点搭不是边。看着英文标题才有确定。猜想刘未鹏先生给出此书名受到不小的影响,不然也不会冒然改动这么大。最近看了通读了一遍,例子翔实,有的代码存在小错误,但不影响阅读。
## 修改(重构)代码步骤与阅读
本书一上来就说明为啥需要修改代码,把原因分类,如何测试。关于如何安置测试是本书的主题,只有安置好测试之后才能安心工作,而不是祈祷式的修改上线。安置测试的时候,必然就会面对一大堆代码,甚至不知道如何写测试,特别是面对大量依赖性代码的时候。本书就为此而写的。
此书章节有点乱,而且书的交叉引用超多。不知道是作者有意为之:希望读者看看体会这些解依赖技术如何产生的。若要体会好此书,个人建议按照步骤来读。步骤如下:
- 确定改动点:画草图、影响结构图。
- 找到测试点 :在影响结构图根部
- 解依赖:重头戏,在第25章详细介绍了各种解依赖技术
- 编写测试:TDD
- 修改、重构:特征图
看完这些看完之后,胸中有了蓝图,心里面存在疑问了,咋解决大类,巨型方法啥的。如何动手处理呢。作者也专门弄了一章来如何在优化需求的情况下,如何一步一步的修改代码。
## 总结
看此书可以体会到两点:
1.面对遗留代码,重构的道路是不会停止的,需要持续进行。
2.单元测试,可以反推你设计是否合理。
另外,就是看国外的书籍,经常会发现很多作者将自己的经验进行总结,比如《代码大全》、《程序设计实践》等优秀图书都是他们遇到的坑。这些书值得我们阅读,谢谢Michael C.Feathers和刘未鹏先生。希望国内能够出一些类似脚踏实地的书。