资源说明:本书围绕5个主题领域来组织本书的内容:概述、企业应用、系统、最终用户应用和编程语言。本书让最优秀的设计师和架构师来描述他们选择的软件架构,剥开架构的各层,展示他们如何让软件做到实现功能、可靠、易用、高效率、可维护、可移植和优雅。
目录
序
前言 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
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。