Martin Fowler是"重构之父" 吗
潘加宇 [2019/7/15]
某公司宣传该公司的Martin Fowler为"重构之父"。

其实Fowler本人对此说法已经表过态了。在《Refactoring: Ruby Edition》的Preface中,Fowler就说:

我专门写文章说此事,目的是要批评春节期间我质疑了"重构之父"的宣传之后看到一种论调:
这么较真有意思吗,Fowler对重构的推广贡献巨大,是不是"重构之父"重要吗?
回答:
既然不重要,那干嘛还在宣传语里写"重构之父"呢?
当年方舟子质疑唐骏的学历造假,也有人洗地"学历重要吗"
——既然不重要,你造假学历干嘛?
不批评始作俑者,反而来批评质疑者,这个三观正确吗?
我可以接受的论调是:
(1)对不起,我们不清楚重构的历史,误以为Fowler是"重构之父",写错了。
或者退一步
(2) 对不起,我们确实知道Fowler不是"重构之父",但是为了宣传目的,决定这样说。很多公司都这样做,还望理解一二。
论调(1)(2)和我开始列出的那种论调是有很大区别的。
**************
去年,我受邀做了一个推荐。我实事求是写了一小段话。前两天也发现,某机构也精妙地把我这一小段话给修改了。
原话如下:

宣传语如下:

修改过的意思和我的原意有很大差别。看来以后我对这些来源的内容真的要"反复阅读"了。
**************
说了那么多,那谁是"重构之父"呢?
可以看IEEE2015年的文章《The Birth of Refactoring: A Retrospective on the Nature of High-Impact Software Engineering Research》(https://ieeexplore.ieee.org/document/7274256/,下载需要账号)。文章的两位作者Bill Opdyke和Bill Griswold在上世纪80年代末各自发明了重构。


提到的两篇论文下载地址如下:

https://cseweb.ucsd.edu/~wgg/Abstracts/gristhesis.pdf

http://laputan.org/pub/papers/opdyke-thesis.pdf
