致谢
本书的创作历时4年多,其间经历了诸多工作形式的变化,在这个过程中很多人为我提供了帮助和支持。
感谢那些阅读本书书稿并提出意见的人。没有这些人的反馈意见,本书将不可能出版。其中有几个团队和一些人员对本书的评阅给予了特别的关注。由Russ Rufer和Tracy Bialek领导的硅谷模式小组(Silicon Valley Patterns Group)花费了几周时间详细审阅了本书完整的第一稿。由Ralph Johnson领导的伊利诺伊大学的阅读小组也花费了几周时间审阅了本书的第二稿。这些小组长期、精彩的讨论对本书产生了深远的影响。Kyle Brown和Martin Fowler提供了细致入微的反馈意见和宝贵的建议,也给了我无价的精神支持(在我们坐在一起钓鱼的时候)。Ward Cunningham的意见帮助我弥补了一些重大的缺陷。Alistair Cockburn在早期给了我很多鼓励,并和Hilary Evans一起帮助我完成了整个出版过程。David Siegel和Eugene Wallingford帮助我避免了很多技术上的错误。VibhuMohindra和Vladimir Gitlevich不厌其烦地检查了所有代码示例。
Rob Mee看了我对一些素材所做的早期研究,并在我尝试表达这种设计风格的时候与我进行了头脑风暴活动,帮我产生了很多新的想法。他后来又与我一起仔细探讨了后面的书稿。
本书在写作过程中经历了一次重大转折,这完全归功于JoshKerievsky。他劝说我在写作本书时借鉴“亚历山大”模式[1],后来本书正是按这种方式组织的。在1999年PLoP会议临近时的忙碌时刻,Josh还帮我收集第二部分的材料,首次将它们组织为更严密的形式。这些材料成了一粒种子,本书大部分后续内容都是围绕这些内容创作的。
还要感谢Awad Faddoul,我有数百个小时坐在他的咖啡厅中写作。咖啡厅宁静优雅,窗外的湖面上总有片片风帆,我正是这样才坚持写下去。
此外还要感谢Martine Jousset、Richard Paselk和Ross Venables,他们拍摄了一些非常精美的照片,用来演示一些关键概念(参见本书后面的图片说明)。
在构思本书之前,我必须先要形成我自己对软件开发的看法和理解。这个过程得到了一些杰出人员的无私帮助,他们是我的良师益友。David Siegel、Eric Gold和Iseult White各自从不同方面帮助我形成了对软件设计的思考方式。同时,Bruce Gordon、RichardFreyberg和Judith Segal博士也从不同角度帮助我找到了项目的成功之路。
我自己的观念就是从那时的思想体系中自然而然发展形成的。有些内容我在正文中清楚地列了出来,并且在可能的地方标明了出处。还有些可能是十分基础的知识,我甚至自己都没有意识到它们对我产生了影响。
我的硕士论文导师Bala Subramanium博士是我在数学建模方面的引路人,当时我们用数学建模来进行化学反应动力学方面的研究。虽说建模本身没什么稀奇,但那时的工作是引导我创作本书的一部分原因。
在更早之前,我的母亲Carol和父亲Gary对我思维模式的形成产生了很大影响。还有几位特别值得一提的教师激发了我的兴趣,帮助我打下坚实的基础,在此感谢Dale Currier(我的高中数学老师)、Mary Brown(我的高中英文写作老师)和Josephine McGlamery(我上6年级时的自然科学老师)。
最后,感谢我的朋友和家人,以及Fernando De Leon,感谢他们一直以来给我的鼓励。
