序 二

在开发大型面向对象应用程序的过程中,我和合著者(O. Nierstrasz 和 S. Demeyer)开始思考面向对象再造模式。我们试图记录在设计层面处理这种系统的良好方法,并略微涉猎流程方面。经过三年的深入研究,我们撰写了 Object-Oriented Reengineering Patterns 一书(http://scg.unibe.ch/download/oorp/)。在此期间,我们还从事独立于语言的重构研究,因此我有机会审阅了Martin Fowler 的著作《重构:改善既有代码的设计》。在我看来,这些书籍都具有里程碑意义,为软件工程科学奠定了基础。

担任 JOT 副主编期间,我读到了本书作者的一篇文章,文章中介绍了本书中展示的研究成果。我当时立即表示支持,并迫不及待地询问作者是否打算写一本书,要是确有这样的打算,能否让我担任审稿人。这是为什么呢?因为那时市面上还没有讨论坏味的优秀图书,而我们每天都面临着代码坏味。本书是一部优秀作品,具有划时代意义,值得每位专业人员阅读。书中介绍了与实际代码打交道的专家才具有的高深知识,这些知识是专家们多年实践经验的结晶。

在开发 Pharo 运行环境和库以及 Moose 软件和数据分析平台时,我没有一天不面临设计方面的挑战。这是因为真正的设计绝不简单,即便对拥有丰富实践经验的人来说也极具挑战性。这就是有良好的抽象可用至关重要的原因所在。在记录这种经验和反思方面,模式和坏味无疑提供了有效的途径。

我喜欢阅读优秀图书并将它们推荐给学生、同事和朋友。我喜欢让人感到充实并反思实际工作的图书。这样的图书如瑰宝般少之又少,而本书堪称其中之一。

对我的著作 Object-Oriented Reengineering Patterns 和 Fowler 的著作《重构》来说,本书是个极佳的补充,是我渴望编写却可能写不出来的。我深信你将从中学到很多并会享受阅读的过程。感谢作者 Girish、Ganesh 和 Tushar 花时间编写了本书。我知道创作过程烦琐而漫长,但这是人类文化和知识的重要组成部分。还要感谢他们邀请我为本书作序。

Stéphane Ducasse

软件分析和软件再工程专家,Pharo、Moose 平台主要开发者,Synctique 公司联合创始人

目录