第3章 代码的坏味道
——Kent Beck和Martin Fowler
“如果尿布臭了,就换掉它。”——语出Beck奶奶,讨论抚养小孩的哲学
现 在,对于重构如何运作,你已经有了相当好的理解。但是知道“如何”不代表知道“何时”。决定何时重构、何时停止和知道重构机制如何运转一样重要。
难题来了!解释“如何删除一个实例变量”或“如何产生一个继承体系”很容易,因为这些都是很简单的事情。但要解释“该在什么时候做这些动作”就没那么顺理成章了。除了露几手含混的编程美学(说实话,这就是咱这些顾问常做的事),我还希望让某些东西更具说服力一些。
去苏黎士拜访Kent Beck的时候,我正在为这个微妙的问题大伤脑筋。也许是因为受到刚出生的女儿的气味影响吧,他提出用味道来形容重构时机。“味道,”他说,“听起来是不是比含混的美学理论要好多了?”啊,是的。我们看过很多很多代码,它们所属的项目从大获成功到奄奄一息都有。观察这些代码时,我们学会了从中找寻某些特定结构,这些结构指出(有时甚至就像尖叫呼喊)重构的可能性。(本章主语换成“我们”,是为了反映一个事实:Kent和我共同撰写本章。你应该可以看出我俩的文笔差异——插科打诨的部分是我写的,其余都是他写的。)
我们并不试图给你一个何时必须重构的精确衡量标准。从我们的经验看来,没有任何量度规矩比得上一个见识广博者的直觉。我们只会告诉你一些迹象,它会指出“这里有一个可以用重构解决的问题”。你必须培养出自己的判断力,学会判断一个类内有多少实例变量算是太大、一个函数内有多少行代码才算太长。
如果你无法确定该进行哪一种重构手法,请阅读本章内容和内封页表格来寻找灵感。你可以阅读本章(或快速浏览环衬页列表)来判断自己闻到的是什么味道,然后再看看我们所建议的重构手法能否帮助你。也许这里所列的“坏味道条款”和你所检测的不尽相符,但愿它们能够为你指引正确方向。
实:Kent和我共同撰写本章。你应该可以看出我俩的文笔差异——插科打诨的部分是我写的,其余都是他写的。)
我们并不试图给你一个何时必须重构的精确衡量标准。从我们的经验看来,没有任何量度规矩比得上一个见识广博者的直觉。我们只会告诉你一些迹象,它会指出“这里有一个可以用重构解决的问题”。你必须培养出自己的判断力,学会判断一个类内有多少实例变量算是太大、一个函数内有多少行代码才算太长。
如果你无法确定该进行哪一种重构手法,请阅读本章内容和内封页表格来寻找灵感。你可以阅读本章(或快速浏览环衬页列表)来判断自己闻到的是什么味道,然后再看看我们所建议的重构手法能否帮助你。也许这里所列的“坏味道条款”和你所检测的不尽相符,但愿它们能够为你指引正确方向。
3.1 Duplic
为了方便大家利用电子书更好的学习,精心整理了网络上的各种电子书,有PDF版本的,也有TXT版本的,现有一万多本PDF的,七万多本TXT的,还有精心整理的天涯神贴,而且还在不断增加中,有需要的可以点击下面的衔接或者扫码下载:
链接: https://pan.baidu.com/s/1z45OMvYM0Jy-BVuJJmRvtw?pwd=w3m9 提取码: w3m9 复制这段内容后打开百度网盘手机App,操作更方便哦
请先
!