Java应用架构设计:模块化模式与OSGi
上QQ阅读APP看书,第一时间看更新

致谢

本书的灵感来源于多个方面,最近几年我得到了他人极大的帮助。但是,我要特别感谢七个人。在我过去二十年的工作中、过去十年研发这些模式以及过去两年完成本书的过程中,他们的理念都给予了我指导。他们是:

Robert C.Martin(Bob大叔):Bob在面向对象设计原则方面(即SOLID原则)的工作是本书所讨论的很多技术的基石。实际上,这本书是他的这个系列的一部分,附录A提供了一些原则的整体介绍。

Clemens Szyperski:Clemens的《Component Software:Beyond Object Oriented Programming》 [5]一书作为基础定义了模块的概念,这个概念贯穿本书。

John Lakos:John的《大规模C++程序设计》是我见过的唯一一本讨论物理设计的书。在那本书中,John的理念激发了我的灵感和对物理设计的兴趣,这使得我在过去的十年中使用并提炼技术,最终形成了这些模块化模式。

Ralph Johnson、John Vlissides、Erich Gamma以及Richard Helm(即GoF):除了提供本书中所使用的模式模板外,《设计模式》一书加深了我对面向对象理念的理解。

除此之外,我还要感谢下面这些人,得益于他们的反馈,我才能极大地改进本书所传递的信息。

尤其是,OSGi联盟的技术总监Peter Kriens:Peter提供了很多的反馈,以至于我应该将其列为合著者。

我还要感谢Brad Appleton、Kevin Bodie、Alex Buckley、Robert Bogetti、Chris Chedgey、Michael Haupt、Richard Nicholson、Glyn Normington、Patrick Paulin、John Pantone以及Vineet Sinha,他们提供了深刻的评论和有价值的反馈,帮助我更清晰地确定本书的范围并在讨论中加入更多视角。当然,在这个过程之中,还有很多人对我的著作产生了影响。令人遗憾的是,我肯定落下了其中一些人的名字。你们知道我说的是谁。谢谢你们!

当然,我还要感谢Prentice Hall团队,正是他们使这一切成为可能。编辑Chris Guzikowski多年以来给我了很多的机会来完成本书,这甚至超出了我的预期。策划编辑Sheri Cain给了我格式化方面的很多建议,回答了我所提出的一些很愚蠢的问题,并且将很粗糙的手稿进行了结构化和改善。编辑助理Olivia Basegio和Raina Chrobak在整个过程中都给予了我指导。项目编辑Anna Popick掌控了整个项目的完成。文字编辑Kim Wimpsett帮助出版了最终的手稿。

最后,我要感谢我的家庭。如果没有他们的爱,几乎什么事情都做不了,什么事情都没有意义。感谢父亲和母亲,他们的温柔陪伴着我的整个生命旅程。我相信很多时候他们都不明白我要成为什么样子。我的祖母Maude,您是有史以来最伟大的老师。我的孩子,Cory、Cody、Izi以及Chloe,他们使得生活充满了乐趣。当然还有我的妻子Tammy。她是我最好的朋友,正是她的鼓励让我抹去旧书稿的灰尘并重新开始。谢谢你们。感谢所有的人!

[1] 《Design Patterns》(中文版为《设计模式:可复用面向对象软件的基础》)一书中的模式被亲切地称为GoF模式。GoF代表“四人组”,也就是这本书的四位作者。
[2] OSGi是Java平台的动态模块化系统。它是OSGi联盟管理的一个规范。想了解更多信息,可以访问www.osgi.org。
[3] Jigsaw是计划为Java SE 8添加的模块化系统。(该功能已经推迟到了Java SE 9。——译者注)
[4] 例外的情况是John Lakos的好书《大规模C++程序设计》。在这本书中,Lakos为我们展现了多个逻辑设计和物理设计原则,它们有助于开发C++所编写的软件。
[5] 该书中文版的书名为《构件化软件——超越面向对象编程》。——译者注