喬
对
修改代码的艺术
的书评
发表时间:2016-04-08 12:04:33
14h:05 in 6 days。我的“重构三部曲”之三,(另外两本是《重构》,《从重构到模式》,这三本书让我对代码的理解有重生之感。大部分书都是教你怎么从0开始写好代码,但是现实是经常从接手已有的项目开始,所以这三本就很有价值。)这本书压箱底8,9年了,前些年有次囫囵吞枣看到100多页就放弃了,因为看不懂。有了前两本垫底,这次阅读就轻松多了。书给我最大的震撼是在开头,“遗留代码” legacy code的定义!一般我们会把别人写的代码定义为遗留代码:),或者自己的代码写着写着就变成了遗留代码。(脑中浮现清帝退位,一群太监从宫门出来的画面。意识流,打住。。)书中对遗留代码的定义非常明确:“遗留代码就是那些没有编写相应测试的代码。” 由此凸显测试驱动开发的重要性,简单说我觉得有3点,1)测试是一种即时反馈的技术,能帮助尽早快速定位到bug。2)从可测试的角度能够写出更好的代码,因为会关注依赖,测试的过程本身也是对代码理解的过程。3)“通过单元测试”是代码质量一个可测量的指标。是设计不足与过度设计的分界点。(好吧,这点我说的有点虚,希望一年内,我能整理出在iOS上测试的流程、工作和经验。)
这本书分为三部分
1)修改机理,讲作者修改代码的方法论。2)修改代码的技术,将代码中遇到的坑一个个罗列出来,而且给出非常实用的对付手段,绝不理论和太极。3)借依赖技术。不合理的依赖是万恶之源,这章有24小结专门介绍怎么对付他们。
话说,看完之后,我忘了大半,等我TDD做起来之后再来验证性的看一遍。
最后吐槽一下翻译的书名。原书名是《Working Effectively with Legacy Code》,很清晰的一个名字,非要翻译成《XXX 的艺术》,估计是因为当时受到高纳德《计算机程序设计的艺术》的影响,写代码更多是个体力活,尤其考验程序猿的眼镜、颈椎、腰椎、还腚。。(像柳比歇夫说自己拍照不是拍正面,而是拍屁股,他是个坐功很好的人。)恕我慧根不够,不敢称呼自己是“艺术家”,却是个面朝屏幕背朝椅的地道“码农”。