BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

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

| 作者 郭晓刚 郑柯 关注 0 他的粉丝 发布于 2009年2月24日. 估计阅读时间: 7 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

《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上尚未有人评论,有哪位读者看过了,欢迎在本新闻后留言评论。

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

很有意思的几本书 by 冯 尚

beautiful code -- bc

beautiful architecture -- ba

beautiful team -- bt

合起来就是bc,ba,bt,全称就不说了~~

期待 by Wu Alan

期待国内引进

这本应该比《代码之美》靠谱些 by 刘江 图灵

说实话,《代码之美》我感觉有些忽悠人。至少编者的意图没有向读者讲清楚。有些作者的文章有凑数之嫌。

这本书的关注度不如《代码之美》,但是从立意来看,要好一些。这个系列里《The Productive Programmer》可能会卖得好一些。《The Art of SQL》中文版市场表现还可以。《Making Things Happen》是个通用书,不知道谁在做?《Masterminds of Programming》是语言创造者访谈录,也有点意思。

其他的可能是好书,但是估计都卖不好……

Re: 这本应该比《代码之美》靠谱些 by wang sheng

很多书虽然好但难免曲高和寡,并且对于多数人来说难有立杆见影之效,应该会卖不好。
要不国内的出版界怎么会那么卖劲儿的包装和推销一些书呢。其中有些书质量根本不好。
就好比很多大片,票房高不是因为拍得好。

Re: 这本应该比《代码之美》靠谱些 by Wu Alan

确实是这样的,好书可能是曲高和寡而导致不好卖。
但是对这本书还是挺期待的,毕竟关于架构的好书实在是少,而且现在又有市场行情。

Re: 这本应该比《代码之美》靠谱些 by Wu Alan

真正喜欢编程喜欢算法的人可能会喜欢《代码之美》吧,
但有多少程序员真正喜欢算法呢?

流行的不一定是最好的,最好的不一定是流行的 by gu fahua

流行的不一定是最好的,最好的不一定是流行的。

金字塔形的人才资源,说明了好东西就是在小范围内流通的。

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

7 讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT