架构之美点击这里下载英文完整版:
Beautiful Architecture: Leading Thinkers Reveal the Hidden Beauty in Software Design内容简介健壮、优雅、灵活和易维护的软件架构是怎样炼成的?本书通过一系列优秀的文章回答了这个问题,这些文章来自于十几位当今一流的软件设计师和架构师。在每篇文章中,作者都向我们展示了一个著名的软件架构,并分析了什么让其具有创新性,让其极其符合设计目标。.
本书内容包括:
·Facebook的架构如何建立在以数据为中心的应用生态系统之上
·Xen的创新架构对操作系统未来的影响
·KDE项目的社群过程如何让软件的架构从粗略的草图成为漂亮的系统..
·蔓延的特征如何让GNU Emacs获得从未想到过的功能
·Jikes RVM自优化、自支持的运行时环境背后的魔法...
作者简介作者: Till Adam
Till Adam在年轻时学习了哲学、比较文学、美国研究和音乐学,职业是音乐人。由于没有发财和出名,他转而攻读科学硕士,学习了数学、计算机科学和商业。多年对自由软件的贡献(特别是对KDE的贡献)教会了他编程,也为他带来了在Klarälvdalens Datakonsult AB工作的机会,目前他在该公司负责协调KDE的开发和其他与自由软件相关的活动。
作者: Bertrand Meyer
Bertrand Meyer是ETH Zurich的软件工程教授,也是Eiffel软件的首席架构师,他领导并设计了EiffelStudio环境和大量的库。他是一些畅销书的作者,其中包括获得Jolt大奖的“Object-Oriented Software Construction (Prentice Hall)”。他也因为在对象技术和Eiffel方面的工作获得了ACM软件系统大奖和Dahl-Nygaard大奖,并获得了St. Petersburg州立技术大学的荣誉博士学位。他的研究兴趣涉及面向对象技术、编程语言、软件验证(包括测试、并发和规范方法)。
作者: Christopher Dennis
Christopher Dennis自2005年JCP项目开始时,就是项目的主开发者。Chris在牛津大学读博士时开始采用Java。此前,他使用过各种编程语言,从16进制小键盘上编写的Z80机器码到PHP和JavaScript。他对特殊情况、编码技巧和偶尔有点丑陋的临时编码很有兴趣,喜欢用各种语言编写紧凑的、优雅的代码。
作者: Dave Grove
Dave Grove是IBM的T.J. Watson研究中心动态优化组的一名研究员。他的主要研究兴趣包括分析和优化面向对象语言、虚拟机设计和实现、JIT编译、在线反馈导向的优化和垃圾收集。他在1998年参加了Jalapeño项目,是这个优化编译器和适应式优化系统首个实现的主要贡献者。自Jalapeño在2001年作为Jikes RVM开放源码以来,他一直是Jikes RVM核心团队和指导委员会的活跃成员。
作者: Dave Fetterman
Dave Fetterman是Facebook的工程经理,他在那里创建了Facebook平台项目。在2006年加入Facebook之前,他是一名软件工程师,参加Microsoft开发者部门的项目,包括.NET的通用语言运行环境(CLR)。他喜欢为其他开发者创建软件,也喜欢对愿意听的人发表长篇大论。他拥有应用数学的学士学位,并在2003年获得了哈佛大学的计算机科学硕士学位。
作者: David Weiss
David Weiss拥有Union College的计算机科学学士学位,并拥有马里兰大学的计算机科学硕士和博士学位。他目前是Avaya实验室的软件技术研究部的领导,他关注软件开发效率改进的普遍问题和Avaya软件开发过程改进的特殊问题。在第二个问题上,他领导了Avaya软件技术研究中心。以前,他曾是朗迅技术贝尔实验室软件生产研究部的主任,该部门负责研究如何改进软件开发的效率。在加入贝尔实验室之前,他是软件生产力协会(SPC)复用和度量部门的主任,该协会由14个大型的美国航空公司组成。
作者: Derek Murray
Derek Murray是剑桥大学计算机实验室的博士生。他在2006年加入Xen项目,主要工作是通过重新设计控制栈来改进Xen的安全性。他现在的研究主要是改进大规模分布式系统的容错性,但他还是偶尔会涉及系统核心。Derek在2006年从爱丁堡大学获得了高性能计算专业的硕士学位,2005年获得了 Glasgow大学的计算机学士学位。
Diomidis Spinellis
Diomidis Spinellis是希腊雅典经济学和商业大学管理科学与技术系统的副教授。他的研究兴趣包括软件工程、计算机安全和编程语言。他也编写了两本“开放源码方面”的书,由Addison-Wesley出版:“Code Reading(获得了2004年的软件开发生产力大奖)”和“Code Quality(获得了2007年软件开发生产力大奖)”。他也写了几十篇科学论文。他是IEEE Software编辑委员会的成员,负责定期的“Tools of the Trade”栏目。Diomidis是FreeBSD的提交者,也是UMLGraph和其他天源软件包、库和工具的开发者。
作者: Georgios Gousios
Georgios Gousios是一名职业研究者,接受的教育和软件工程有关,热衷于软件开发。目前,他正在希腊的雅典经济学与商业大学完成他的博士论文。他的研究兴趣包括软件工程、软件品质、虚拟机和操作系统,他拥有英国曼彻斯特大学的科学硕士学位。Gousios为多个开源软件项目贡献过代码,并参与了各种学术项目和商业项目的研究与开发。他是SQO-OSS项目的项目经理、设计权威和主要开发成员,为评估软件品质探索一些创新的方法。在他的学术生涯中,Gousios在会议和杂志上发表了10篇技术论文。
作者: Greg Lehey
Greg Lehey的漫长职业生涯在德国和澳大利业度过,他曾为德国空间研究所工作,也曾为Univac、Tandem、Siemens-Nixdorf和IBM 等计算机制造商工作,也曾作为一些没名气的软件公司的大客户,还曾做过独立的咨询顾问。他的活动范围很广,包括从内核开发到产品管理,从系统编程到系统管理,从处理卫星数据到为油泵编程,从生产CD-ROM到把自由软件移植到DSP指令集上。他是FreeBSD核心团队的成员,也是澳大利业Unix用户协会的主席。
目录序 .
前言 5
第一部分 论架构
第1章 架构概述 13
1.1 简介 13
1.2 创建软件架构 19
1.3 架构结构 23
1.4 好的架构 27
1.5 美丽的架构 28
致谢 30
参考文献 31
第2章 两个系统的故事:现代软件神话 33
2.1 混乱大都市 34
2.2 设计之城 40
2.3 说明什么问题 47
2.4 轮到你了 48
参考文献 48
第二部分 企业级应用架构
第3章 伸缩性架构设计 51
.3.1 简介 51
3.2 背景 52
3.3 架构 56
3.4 关于架构的思考 61
第4章 记忆留存 67
4.1 功能和约束 68
4.2 工作流 69
4.3 架构关注点 70
4.4 用户反应 90
4.5 结论 90
参考文献 90
第5章 面向资源的架构:在Web中 91
5.1 简介 91
5.2 传统的Web服务 92
5.3 Web 94
5.4 面向资源的架构 99
5.5 数据驱动的应用 102
5.6 应用面向资源的架构 103
5.7 结论 108
第6章 数据增长:Facebook平台的架构 109
6.1 简介 109
6.2 创建一个社会关系Web服务 114
6.3 创建社会关系数据查询服务 121
6.4 创建一个社会关系Web门户:FBML 129
6.5 系统的支持功能 142
6.6 总结 147
第三部分 系统架构..
第7章 Xen和虚拟化之美 151
7.1 简介 151
7.2 Xenoservers 152
7.3 虚拟化的挑战 154
7.4 半虚拟化 155
7.5 Xen的变换形式 158
7.6 改变的硬件,改变的Xen 163
7.7 经验教训 165
7.8 延伸阅读 166
第8章 Guardian:一个容错操作系统环境 169
8.1 Tandem/16,将来所有的计算机都会像这样构建 170
8.2 硬件 170
8.3 物理布局 172
8.4 处理器架构 172
8.5 处理器间总线 178
8.6 输入/输出 178
8.7 进程结构 179
8.8 消息系统 179
8.9 文件系统 183
8.10 轶闻趣事 188
8.11 弊端 189
8.12 后继者 190
8.13 延伸阅读 191
第9章 JPC:一个纯Java的x86 PC模拟程序 193
9.1 简介 193
9.2 概念验证 195
9.3 PC架构 198
9.4 Java性能技巧 199
9.5 把4GB放入4GB:这不起作用 200
9.6 保护模式的危险 203
9.7 从事一项毫无成功希望的斗争 206
9.8 劫持JVM 210
9.9 终极灵活性 220
9.10 终极安全性 222
9.11 第二次做会更好 223
第10章 元循环虚拟机的力量:Jikes RVM 225
10.1 背景 225
10.2 与运行时环境相关的传言 227
10.3 Jikes RVM简史 229
10.4 一个自足执行的运行时自举 230
10.5 运行时组件 234
10.6 经验教训 246
参考文献 247
第四部分 最终用户应用架构
第11章 GNU Emacs:滋长的特性是其优势 251
11.1 使用中的Emacs 252
11.2 Emacs的架构 254
11.3 滋长的特性 260
11.4 另外两个架构 262
第12章 当集市开始构建教堂 267
12.1 简介 267
12.2 KDE项目的历史和组织结构 269
12.3 Akonadi 274
12.4 ThreadWeaver 289
第五部分 语言与架构
第13章 软件架构:面向对象与面向函数 299
13.1 概述 299
13.2 函数式示例 302
13.3 函数式解决方案的模块性评价 305
13.4 面向对象视图 313
13.5 面向对象模块性的评价和改进 319
13.6 代理:将操作封装到对象中 323
致谢 328
参考文献 328
第14章 重读经典 331
14.1 所有东西都是对象 335
14.2 类型是隐式定义的 342
14.3 问题 348
14.4 砖块和灰浆建筑架构 352
参考资料 359
跋 漂亮地构建 ...363
封面
附件:
您所在的用户组无法下载或查看附件下载