架构师的唐诗三百首——O'reilly 新书 Beautiful Architecture

  • 郭晓刚
  • 郑柯

2009 年 2 月 23 日

话题:架构文化 & 方法

《Beautiful Code》之后,O’reilly 于 2009 年 1 月推出了“Theory In Practice”系列书籍最新的《Beautiful Architecture》。本书由 Diomidis Spinellis 和 Georgios Gousios 共同编纂。

《Beautiful Architecture》共包含 5 个部分、14 个章节。这 5 个部分包括“关于架构”、“企业应用架构”、“系统架构”、“终端用户应用架构”和“开发语言与架构”。而 14 个章节是由两位作者及其背后的软件研究团队共同编写的。

延续着 Beautiful 系列的惯例,本书举了许多读者耳熟能详的软件 / 应用作为剖析的对象,比如 Facebook、Xen、KDE、GNU Emacs、Jikes RVM……以兹说明优美架构的共通特征,包括Stephen J. Mellor在本书的序言中罗列的若干原则:

  • One face in one place——一件事实一个来源。重复是错误之源。好的架构会将信息与行为局部化,当变化发生时就只需要在一个地方修改。体现在运行时系统上就是分层,每一层都是一个级别的抽象或是一个领域。
  • Automatic propagation——事实的自动传播。出于效率上的考虑,一些数据或行为不得不重复,好的架构会在“元编程”建造工具的协助下自动完成实施的传播,以确保事实的一致性和正确性。
  • Architecture includes construction——架构不仅仅包括运行时系统,系统如何建造亦是架构的一部分。 好的架构是一体两面的,优美的运行时是在同样优美的建造过程下用相同的技术、数据建造而成。
  • Minimize mechanisms——最简机制。完成一项功能的最佳方法因时而异。好的架构不去追求每一项功能的“最佳”实现,而追求能满足整体需求的一套“最简”机制。每事必穷则错误内生,吝于增加新机制才有更小、更快、更强健的系统。
  • Construct engines——可扩展的系统依靠层叠相连的虚拟机 / 引擎,高层的数据驱动着低层引擎的运转。这些引擎具备很高的重用能力,可收事半功倍之效。
  • O(G), the order of growth——就像我们用 O(n) 衡量算法的计算复杂度一样,好的架构会考虑到不同设计在不同情形下的表现,预计未来的成长方向而作好准备。
  • Resist entropy——抵御熵。好的架构为维护铺设坦途,因为只有维护才能够抵御系统在熵增定律下混乱失序。

当本书作者们请 Stephen Mellor 说说如何成为一名优秀的架构师,他哑然失笑。对呀,要是我们知道就好了。纵然如此,放眼去看看世上的优美架构,比如本书所举的这些,依然可收“熟读唐诗三百首”之效。

Diomidis Spinellis是希腊雅典经济与商业大学管理科学与技术系的副教授。他的研究领域包括软件工程工具,编程语言和计算机安全。他在伦敦帝国理工大学获得了软件工程硕士学位和计算机科学博士学位。他发表了超过 100 篇的技术论文,所涉及的领域包括软件工程,信息安全以及普适计算。他还编写了两本开源方面的书籍:《Code Reading》(获得 2004 年度 Jolt Software Development Productivity 奖,中文版为《代码阅读方法与实践》)和《Code Quality》(获得 2007 年度 Jolt Software Development Productivity 奖,中文版为《高质量程序设计艺术》),这两本书都由 Addison-Wesley 出版社出版。此外,他还编写了《Beautiful Code》中的第 17 章“Another Level of Indirection”。他是 IEEE Software 编辑委员会的成员,主编“Tools of the Trade”专栏。Diomidis 是一位 FreeBSD 提交者(Committer),并且编写了许多开源软件包、软件库以及工具。

本书的另外一名作者 Georgios Gousios 是一名职业研究人员,接受了软件工程教育,并且热衷于软件开发。目前正在希腊雅典经济与商业大学准备博士论文,并接受 Diomidis Spinellis 的指导。他对虚拟机、操作系统、软件工程和软件质量感兴趣。

O'reilly 的“Theory in Practice”系列书籍将软件开发的理论与实践相结合,并由富有多年软件开发相关领域经验的作者编写,目前已经出版的书籍包括《Prefactoring》、《The Art of SQL》、《Beautiful Code》、《The Art of Agile Development》、《Making Things Happen》、《The Productive Programmer》等诸多好书,接下来还会有《Beautiful Teams》、《Masterminds of Programming》、《Apprenticeship Patterns》等诸多好书问世。《Beautiful Code》已由北京华章图文信息有限公司引进至国内出版中文版,名为《代码之美》,并深受好评,出版不到半年荣获了 2008 年十大 IT 畅销书,在各大网上书店排名前十。对于“Theory in Practice”系列图书,华章方面负责人表示将会把重点放在“The Art”和“Beautiful”两个套系上,目前要出版的包括《The Art of Capacity Plan》和《The Art of Application Performance Testing》,前者由微软的 MVP 担纲翻译,后者由“测试时代”网站的团队负责。

由于《Beautiful Architecture》一书刚面世不久,目前在 Amazon 上尚未有人评论,有哪位读者看过了,欢迎在本新闻后留言评论。

架构文化 & 方法