猜你喜欢
架构之美:行业思想领袖揭秘软件设计之美(评注版)

架构之美:行业思想领袖揭秘软件设计之美(评注版)

书籍作者:Diomidis ISBN:9787121338076
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:2081
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

这是荟萃了软件架构领域各位思想领袖真知灼见的经典之作,内容覆盖了软件架构的方方面面,包括架构理论、企业架构、系统架构、应用架构等。这些架构大师们用简洁的文本、真实的案例向读者勾勒出美丽架构的模样,并由此提出设计美丽架构的原则、实践与演进过程。

作者简介

Diomidis Spinellis是希腊雅典经济学和商业大学管理科学与技术系统的副教授。他的研究兴趣包括软件工程、计算机安全和编程语言。他是IEEE Software编辑委员会的成员,负责定期的“Tools of the Trade”栏目。Diomidis是FreeBSD的提交者,也是UMLGraph和其他天源软件包、库和工具的开发者。他拥有软件工程的硕士学位和计算机科学博士学位,都是在Imperial College London获得的。Diomidis是ACM的高级成员,也是IEEE和Usenix Association的成员。Georgios Gousios是一名职业研究者,接受的教育和软件工程有关,热衷于软件开发。他的研究兴趣包括软件工程、软件品质、虚拟机和操作系统,他拥有英国曼彻斯特大学的科学硕士学位。Gousios为多个开源软件项目贡献过代码,并参与了各种学术项目和商业项目的研究与开发。
张逸,架构编码实践者,IT文艺工作者,大数据平台架构师,兼爱OO与FP,热衷于编程语言学习与技艺提升,致力于将主流领域驱动设计与函数式编程、响应式编程以及微服务架构完美结合。他的个人微信公众号为「逸言」。

编辑推荐
适读人群 :期待提高架构能力,学会欣赏架构之美的开发人员与架构师。

全书传递的架构知识既有高屋建瓴的系统描述,又有深入系统的全面 剖析,全面体现了架构设计中的简洁之美、清晰之美、风格之美、灵活之美和演进之美。评注者用评注的形式,帮助读者更进一步理解经典。

前言

评注者序

软件架构终归属于工程学的范畴,不能一概以“只可意会不可言传”来搪塞,因为架构知识是可以传递的,架构文档是可以共享的,最重要的是,架构自身是可以评审、验证与实现的。

Stephen J. Mellor 在“Beautiful Architecture”一书的序中,画龙点睛地勾勒出美丽架构的模样,即必须遵循的一些普遍原则,分别为

○one fact In one place(一处一事实)

○ Automatic propagation(自动传播)

○ Architecture includes construction(架构包含构建)

○ Minimize mechanisms(最小化机制)

○ Constuct engines(构建引擎)

○ O(G), the order of growth(O(G),增长的阶)

○ Resist entropy(抵制熵)

这些原则,其实就是架构师的智慧,没有足够深刻的理解与深入实践,是不可能给出如此言简意赅的架构建议的。按照我的理解,这些普适性原则其实就是在说明所谓美丽的架构,就是简单、一致、适应变化并能去除重复的架构。就如Mellor 所言——美丽的架构能用更少的机制做更多的工作。这就是“Beautiful Architecture”一书不凡的开篇。

若是一本平庸的书,必然会惧怕这样精彩绝伦的序,因为它愈发的美,就愈发能照映出正文的丑;它愈发的言之有物,又愈发会衬托出正文的空洞无味。然而,若是内容是超乎寻常的精彩绝伦,这样的序就无异于锦上添花,珠联璧合了。通透点儿,就是齐活!这就好比一首歌曲的领唱者,倘若一开始就飙出高音,声入云霄。后续跟着唱的人要是没有点儿本事,恐怕就难以为继了;可要都是高手呢?那就真是一场音乐的盛宴了。

“Beautiful Architecture”荟萃了全球最顶级的架构师和意见领袖,他们在这本书中唱出了架构思想、实践与原则的最强音。全书共分为以下5 个主题。

○On Architeture

○ Enterprise Application Architecture

○ Systems Architecture

○ End-User Application Architectures

○ Languages and Architecture

这些主题几乎覆盖了软件架构的方方面面,精选的每篇文章可谓字字珠玑,充满了写作者的真知灼见。开卷阅读,如与大师对话,聆听者必须凝神应对,稍不留神就可能遗漏那些重要而正确的意见,影响到对整篇文章的理解。整本书正文不足400 页,然而每次阅读皆有新意,书的内容仿佛博尔赫斯笔下小径分叉的花园,花园虽小,景色却变幻多姿,路途虽短,距离却无穷无尽,咫尺天涯。

因此,作为本书的评注者,真可以说是战战兢兢、如履薄冰。我的每句点评都尽力追求达到个人最大努力的完美,不求锦上添花,只求不得“狗尾续貂”之嫌。安全地说,这些评注不过是我写在这本大书边上的感悟罢了。这些感悟,或是阅读到精彩段落的击节赞叹,或是不明其义而反复研读之后的醍醐灌顶,或是触类旁通体会到架构本质因而不揣冒昧地给出自己的心得体会。在评注过程中,我恪守“扬长避短”的原则,不懂就不装懂,默不作声,当一位沉默的看客;一旦涉猎到自己擅长的部分,却也不妨洋洋洒洒高谈阔论,坦承自己的观点。

对于这些架构领袖们,我怀揣敬意,却也不愿以一种卑微的心态被动接受。我需要做一个具有自己人格和高度的评注者。至于对否,就交给读者诸君对评注再做一次“评注”吧!

张 逸

个人博客:http://zhangyi.xyz


目录

序 xix
Stephen J. Mellor
前言 xxiii
第1 部分 论架构
第1 章 何谓架构 3
John Klein 与David Weiss
简介 3
创建软件架构 10
架构结构 14
好的架构 19
美丽架构 20
致谢 23
参考文献 23
第2 章 两个系统的故事:摩登时代的软件神话 25
Pete Goodliffe
混乱大都市 26
设计之城 33
然后呢 41
轮到你了 41
参考文献 42
第2 部分 企业应用架构
第3 章 可伸缩架构 45
Jim Waldo
简介 45
上下文 47
架构 51
对架构的思考 57
第4 章 记忆留存 63
Michael Nygard
功能与约束 64
工作流 65
架构要素 66
用户反应 87
结论 88
参考文献 88
第5 章 面向资源架构:在Web 之中 89
Brian Sletten
简介 89
传统的Web 服务 90
Web 92
面向资源架构 98
数据驱动应用 102
运用面向资源架构 103
结论 109
第6 章 数据增长:Facebook 平台的架构 111
Dave Fetterman
简介 111
创建社交Web 服务 117
创建社交数据查询服务 124
创建社交Web 门户:FBML 133
系统的支持功能 146
总结 151
第3 部分 系统架构
第7 章 XEN 与虚拟化之美 155
Derek Murray 与Keir Fraser
简介 155
Xenoservers 156
虚拟化的挑战 159
半虚拟化 159
Xen 的变化 163
变化中的硬件,变化中的Xen 169
前车之鉴 172
延伸阅读 173
第8 章 Guardian:一个容错操作系统环境 175
Greg Lehey
Tandem/16:未来所有计算机都将像这样构建 176
硬件 176
机械设计 178
处理器架构 179
处理器间总线 184
输入/输出 184
进程结构 185
消息系统 186
文件系统 190
逸闻趣事 195
弊端 195
后继者 197
延伸阅读 198
第9 章 JPC:纯Java 的X86 PC 模拟器 199
Rhys Newman 与Christopher Dennis
简介 200
概念验证 202
PC 架构 205
Java 性能技巧 206
4GB 放入4GB:这不会奏效 207
保护模式的危险 210
屡败屡战 214
劫持JVM 217
终极灵活性 229
终极安全性 231
吃一堑长一智 232
第10 章 元循环虚拟机的力量:Jikes RVM 235
Ian Rogers 与Dave Grove
背景 236
运行时环境之谜 237
Jikes RVM 简史 240
自部署运行时的自举 241
运行时组件 246
前车之鉴 259
参考文献 259
第4 部分 终端用户应用架构
第11 章 GNU Emacs:滋生的特性为其优势 263
Jim Blandy
Emacs 在使用 264
Emacs 的架构 266
滋生的特性 272
另外两个架构 275
第12 章 当集市开始构建教堂 279
Till Adam 与Mirko Boehm
简介 279
KDE 项目的历史与架构 282
Akonadi 287
ThreadWeaver 303
第5 部分 语言与架构
第13 章 软件架构:面向对象 vs. 面向函数 315
Bertrand Meyer
概览 315
函数式示例 318
评估函数式解决方案的模块化 321
面向对象视图 330
评估和改进面向对象的模块化 336
代理:将操作包裹到对象中 341
致谢 345
参考文献 346
第14 章 重读经典 349
Panagiotis Louridas
万物皆对象 353
类型被隐式定义 361
问题 367
土木建筑架构 372
参考文献 380
跋 383
William J. Mitchell
贡献者 387

标签
架构