架構(gòu)之美:行業(yè)思想領(lǐng)袖揭秘軟件設(shè)計(jì)之美
鏈接:https://pan.baidu.com/s/1pS-3EqHBiySB4PXRBL4KDA?pwd=uy1v?
提取碼:uy1v

全書傳遞的架構(gòu)知識(shí)既有高屋建瓴的系統(tǒng)描述,又有深入系統(tǒng)的全面 剖析,全面體現(xiàn)了架構(gòu)設(shè)計(jì)中的簡(jiǎn)潔之美、清晰之美、風(fēng)格之美、靈活之美和演進(jìn)之美。評(píng)注者用評(píng)注的形式,幫助讀者更進(jìn)一步理解經(jīng)典。
內(nèi)容簡(jiǎn)介
這是薈萃了軟件架構(gòu)領(lǐng)域各位思想領(lǐng)袖真知灼見的經(jīng)典之作,內(nèi)容覆蓋了軟件架構(gòu)的方方面面,包括架構(gòu)理論、企業(yè)架構(gòu)、系統(tǒng)架構(gòu)、應(yīng)用架構(gòu)等。這些架構(gòu)大師們用簡(jiǎn)潔的文本、真實(shí)的案例向讀者勾勒出美麗架構(gòu)的模樣,并由此提出設(shè)計(jì)美麗架構(gòu)的原則、實(shí)踐與演進(jìn)過程。
作者簡(jiǎn)介
Diomidis Spinellis是希臘雅典經(jīng)濟(jì)學(xué)和商業(yè)大學(xué)管理科學(xué)與技術(shù)系統(tǒng)的副教授。他的研究興趣包括軟件工程、計(jì)算機(jī)安全和編程語言。他是IEEE Software編輯委員會(huì)的成員,負(fù)責(zé)定期的“Tools of the Trade”欄目。Diomidis是FreeBSD的提交者,也是UMLGraph和其他天源軟件包、庫和工具的開發(fā)者。他擁有軟件工程的碩士學(xué)位和計(jì)算機(jī)科學(xué)博士學(xué)位,都是在Imperial College London獲得的。Diomidis是ACM的高級(jí)成員,也是IEEE和Usenix Association的成員。Georgios Gousios是一名職業(yè)研究者,接受的教育和軟件工程有關(guān),熱衷于軟件開發(fā)。他的研究興趣包括軟件工程、軟件品質(zhì)、虛擬機(jī)和操作系統(tǒng),他擁有英國(guó)曼徹斯特大學(xué)的科學(xué)碩士學(xué)位。Gousios為多個(gè)開源軟件項(xiàng)目貢獻(xiàn)過代碼,并參與了各種學(xué)術(shù)項(xiàng)目和商業(yè)項(xiàng)目的研究與開發(fā)。
張逸,架構(gòu)編碼實(shí)踐者,IT文藝工作者,大數(shù)據(jù)平臺(tái)架構(gòu)師,兼愛OO與FP,熱衷于編程語言學(xué)習(xí)與技藝提升,致力于將主流領(lǐng)域驅(qū)動(dòng)設(shè)計(jì)與函數(shù)式編程、響應(yīng)式編程以及微服務(wù)架構(gòu)完美結(jié)合。他的個(gè)人微信公眾號(hào)為「逸言」。
目錄
序 xix
Stephen J. Mellor
前言 xxiii
第1 部分 論架構(gòu)
第1 章 何謂架構(gòu) 3
John Klein 與David Weiss
簡(jiǎn)介 3
創(chuàng)建軟件架構(gòu) 10
架構(gòu)結(jié)構(gòu) 14
好的架構(gòu) 19
美麗架構(gòu) 20
致謝 23
參考文獻(xiàn) 23
第2 章 兩個(gè)系統(tǒng)的故事:摩登時(shí)代的軟件神話 25
Pete Goodliffe
混亂大都市 26
設(shè)計(jì)之城 33
然后呢 41
輪到你了 41
參考文獻(xiàn) 42
第2 部分 企業(yè)應(yīng)用架構(gòu)
第3 章 可伸縮架構(gòu) 45
Jim Waldo
簡(jiǎn)介 45
上下文 47
架構(gòu) 51
對(duì)架構(gòu)的思考 57
第4 章 記憶留存 63
Michael Nygard
功能與約束 64
工作流 65
架構(gòu)要素 66
用戶反應(yīng) 87
結(jié)論 88
參考文獻(xiàn) 88
第5 章 面向資源架構(gòu):在Web 之中 89
Brian Sletten
簡(jiǎn)介 89
傳統(tǒng)的Web 服務(wù) 90
Web 92
面向資源架構(gòu) 98
數(shù)據(jù)驅(qū)動(dòng)應(yīng)用 102
運(yùn)用面向資源架構(gòu) 103
結(jié)論 109
第6 章 數(shù)據(jù)增長(zhǎng):Facebook 平臺(tái)的架構(gòu) 111
Dave Fetterman
簡(jiǎn)介 111
創(chuàng)建社交Web 服務(wù) 117
創(chuàng)建社交數(shù)據(jù)查詢服務(wù) 124
創(chuàng)建社交Web 門戶:FBML 133
系統(tǒng)的支持功能 146
總結(jié) 151
第3 部分 系統(tǒng)架構(gòu)
第7 章 XEN 與虛擬化之美 155
Derek Murray 與Keir Fraser
簡(jiǎn)介 155
Xenoservers 156
虛擬化的挑戰(zhàn) 159
半虛擬化 159
Xen 的變化 163
變化中的硬件,變化中的Xen 169
前車之鑒 172
延伸閱讀 173
第8 章 Guardian:一個(gè)容錯(cuò)操作系統(tǒng)環(huán)境 175
Greg Lehey
Tandem/16:未來所有計(jì)算機(jī)都將像這樣構(gòu)建 176
硬件 176
機(jī)械設(shè)計(jì) 178
處理器架構(gòu) 179
處理器間總線 184
輸入/輸出 184
進(jìn)程結(jié)構(gòu) 185
消息系統(tǒng) 186
文件系統(tǒng) 190
逸聞趣事 195
弊端 195
后繼者 197
延伸閱讀 198
第9 章 JPC:純Java 的X86 PC 模擬器 199
Rhys Newman 與Christopher Dennis
簡(jiǎn)介 200
概念驗(yàn)證 202
PC 架構(gòu) 205
Java 性能技巧 206
4GB 放入4GB:這不會(huì)奏效 207
保護(hù)模式的危險(xiǎn) 210
屢敗屢戰(zhàn) 214
劫持JVM 217
終極靈活性 229
終極安全性 231
吃一塹長(zhǎng)一智 232
第10 章 元循環(huán)虛擬機(jī)的力量:Jikes RVM 235
Ian Rogers 與Dave Grove
背景 236
運(yùn)行時(shí)環(huán)境之謎 237
Jikes RVM 簡(jiǎn)史 240
自部署運(yùn)行時(shí)的自舉 241
運(yùn)行時(shí)組件 246
前車之鑒 259
參考文獻(xiàn) 259
第4 部分 終端用戶應(yīng)用架構(gòu)
第11 章 GNU Emacs:滋生的特性為其優(yōu)勢(shì) 263
Jim Blandy
Emacs 在使用 264
Emacs 的架構(gòu) 266
滋生的特性 272
另外兩個(gè)架構(gòu) 275
第12 章 當(dāng)集市開始構(gòu)建教堂 279
Till Adam 與Mirko Boehm
簡(jiǎn)介 279
KDE 項(xiàng)目的歷史與架構(gòu) 282
Akonadi 287
ThreadWeaver 303
第5 部分 語言與架構(gòu)
第13 章 軟件架構(gòu):面向?qū)ο?vs. 面向函數(shù) 315
Bertrand Meyer
概覽 315
函數(shù)式示例 318
評(píng)估函數(shù)式解決方案的模塊化 321
面向?qū)ο笠晥D 330
評(píng)估和改進(jìn)面向?qū)ο蟮哪K化 336
代理:將操作包裹到對(duì)象中 341
致謝 345
參考文獻(xiàn) 346
第14 章 重讀經(jīng)典 349
Panagiotis Louridas
萬物皆對(duì)象 353
類型被隱式定義 361
問題 367
土木建筑架構(gòu) 372
參考文獻(xiàn) 380
跋 383
William J. Mitchell
貢獻(xiàn)者 387
查看全部↓
前言/序言
評(píng)注者序
軟件架構(gòu)終歸屬于工程學(xué)的范疇,不能一概以“只可意會(huì)不可言傳”來搪塞,因?yàn)榧軜?gòu)知識(shí)是可以傳遞的,架構(gòu)文檔是可以共享的,最重要的是,架構(gòu)自身是可以評(píng)審、驗(yàn)證與實(shí)現(xiàn)的。
Stephen J. Mellor 在“Beautiful Architecture”一書的序中,畫龍點(diǎn)睛地勾勒出美麗架構(gòu)的模樣,即必須遵循的一些普遍原則,分別為
○one fact In one place(一處一事實(shí))
○ Automatic propagation(自動(dòng)傳播)
○ Architecture includes construction(架構(gòu)包含構(gòu)建)
○ Minimize mechanisms(最小化機(jī)制)
○ Constuct engines(構(gòu)建引擎)
○ O(G), the order of growth(O(G),增長(zhǎng)的階)
○ Resist entropy(抵制熵)
這些原則,其實(shí)就是架構(gòu)師的智慧,沒有足夠深刻的理解與深入實(shí)踐,是不可能給出如此言簡(jiǎn)意賅的架構(gòu)建議的。按照我的理解,這些普適性原則其實(shí)就是在說明所謂美麗的架構(gòu),就是簡(jiǎn)單、一致、適應(yīng)變化并能去除重復(fù)的架構(gòu)。就如Mellor 所言——美麗的架構(gòu)能用更少的機(jī)制做更多的工作。這就是“Beautiful Architecture”一書不凡的開篇。
若是一本平庸的書,必然會(huì)懼怕這樣精彩絕倫的序,因?yàn)樗l(fā)的美,就愈發(fā)能照映出正文的丑;它愈發(fā)的言之有物,又愈發(fā)會(huì)襯托出正文的空洞無味。然而,若是內(nèi)容是超乎尋常的精彩絕倫,這樣的序就無異于錦上添花,珠聯(lián)璧合了。通透點(diǎn)兒,就是齊活!這就好比一首歌曲的領(lǐng)唱者,倘若一開始就飆出高音,聲入云霄。后續(xù)跟著唱的人要是沒有點(diǎn)兒本事,恐怕就難以為繼了;可要都是高手呢?那就真是一場(chǎng)音樂的盛宴了。
“Beautiful Architecture”薈萃了全球最頂級(jí)的架構(gòu)師和意見領(lǐng)袖,他們?cè)谶@本書中唱出了架構(gòu)思想、實(shí)踐與原則的最強(qiáng)音。全書共分為以下5 個(gè)主題。
○On Architeture
○ Enterprise Application Architecture
○ Systems Architecture
○ End-User Application Architectures
○ Languages and Architecture
這些主題幾乎覆蓋了軟件架構(gòu)的方方面面,精選的每篇文章可謂字字珠璣,充滿了寫作者的真知灼見。開卷閱讀,如與大師對(duì)話,聆聽者必須凝神應(yīng)對(duì),稍不留神就可能遺漏那些重要而正確的意見,影響到對(duì)整篇文章的理解。整本書正文不足400 頁,然而每次閱讀皆有新意,書的內(nèi)容仿佛博爾赫斯筆下小徑分叉的花園,花園雖小,景色卻變幻多姿,路途雖短,距離卻無窮無盡,咫尺天涯。
因此,作為本書的評(píng)注者,真可以說是戰(zhàn)戰(zhàn)兢兢、如履薄冰。我的每句點(diǎn)評(píng)都盡力追求達(dá)到個(gè)人最大努力的完美,不求錦上添花,只求不得“狗尾續(xù)貂”之嫌。安全地說,這些評(píng)注不過是我寫在這本大書邊上的感悟罷了。這些感悟,或是閱讀到精彩段落的擊節(jié)贊嘆,或是不明其義而反復(fù)研讀之后的醍醐灌頂,或是觸類旁通體會(huì)到架構(gòu)本質(zhì)因而不揣冒昧地給出自己的心得體會(huì)。在評(píng)注過程中,我恪守“揚(yáng)長(zhǎng)避短”的原則,不懂就不裝懂,默不作聲,當(dāng)一位沉默的看客;一旦涉獵到自己擅長(zhǎng)的部分,卻也不妨洋洋灑灑高談闊論,坦承自己的觀點(diǎn)。
對(duì)于這些架構(gòu)領(lǐng)袖們,我懷揣敬意,卻也不愿以一種卑微的心態(tài)被動(dòng)接受。我需要做一個(gè)具有自己人格和高度的評(píng)注者。至于對(duì)否,就交給讀者諸君對(duì)評(píng)注再做一次“評(píng)注”吧!
張 逸
個(gè)人博客:http://zhangyi.xyz
查看全部↓