《Refactoring》阅读笔记

“Any fool can write code that a computer can understand. Good programmers write code that humans can understand.”
—M. Fowler (1999)

这是一本和《设计模式》比肩的书,跟《设计模式》一样,这本书总结了编程的最佳实践,尽管没有《设计模式》那么有技术含量,可是对程序员的影响却是实实在在,尤其是对初级程序员,它提供了好代码和坏代码的鉴别方法,而能鉴别好坏是提升编码能力的基本要求。在提升框架设计前,先把代码写好了。

这本书初版于1999年,历经二十年,重构的思想历久弥新,尤其是重构与测试的正反馈,就算是重构手法和细节大多也没过时,这个在恨不得每年出一个版的IT图书中是很少见的。最近作者Martin Fowler用2年的时间修订了第二版,在11月30号刚刚出版,这个版本的一个大变化是,范例的语言从Java切换成了JavaScript,意味深长啊。正好我一直没学会JavaScript,多了一个接触JS的机会,不过中文版和英文版的引进估计要等一年后了。

言归正传
第一章,Martin从一个只有三个类,几十行代码的小Demo开始,一步步讲解重构的手法和基本概念,让没有接触过重构的人对重构有最直观的印象。 我为了分享,把这个Demo写了两遍,对重构的理解和原本只看书就会不同。正如他说的,重构更重要的在于“节奏”的把握。这种手感通过刻意练习才能习得。

第二章就开始涉及到一点点理论,重构的原理,告诉我们什么是重构,为什么要重构,什么时候开始重构,甚至还贴心地出谋划策如何向经理解释重构的必要性。 重构会遇到的什么问题?重构与设计和性能有什么关系?这些内容包含作者真知灼见,千万重视。

第三章,代码的坏味道,教会我们识别什么样的代码是坏味道的代码,需要重构,这其实是通过大量的训练培养判断代码好坏的直接,讲得有点杂且啰嗦。

第四章,强调了测试和重构的关系。测试在开发者里是一件被普遍忽略的事情,我想做好几次,也没搞起来。但是我接受了Martin和他们一群大师的观点,留待后叙。

第五章简单地介绍一些,书中重构的组织方式,重构列表长什么样的。

从第六章到第十一章,介绍了六种类型的重构,包括组织函数、对象之间搬移功能、组织数据、简化表达式、简化函数调用,处理泛化关系,这些重构都不难,却大多很有用,可以立刻应用在工程中。

后面三章,大型重构,重构、复用与现实,重构工具,我这次重读就跳过了,也许随着重构的接受和工具的改进,作者觉得不重要,在第二版中移除了。

重构和设计模式之间有天生的联系,我觉得重构是掌握设计模式的必经之路。这点在《Refactoring to Patterns》有更多的讲解,这是重构系列的第二本重要的书。预知后事如何,且待下回分解。

周二下午,我在小组里分享了《重构》这个话题。有个一直以来被验证的心得:“知识只有被分享出去,才能留得下来。”

对于一个工作即将十二年的老程序员来说,分享这个话题显然是晚了,现在不做,难道再等下一个甲子吗?

“种一棵树最好的时机是十年前,其次是现在。”

我预计我的程序员的职业生涯还很长,搞不好再搞“几辈子”,所以,尽管代价很高,把过去没做好的事情,重新做一遍是值得的。

你可能感兴趣的:(《Refactoring》阅读笔记)