3dwoo大學簡體電腦書店
反應式設計模式
( 簡體 字)
作者:[美]羅蘭·庫恩(Roland Kuhn)布賴恩·哈納菲(Brian Hanafee)杰米·艾倫(Jamie Allen)著 類別:1. -> 程式設計 -> 綜合
譯者:何 品 邱嘉和 王石沖 譯 林煒翔審校
出版社:清華大學出版社反應式設計模式 3dWoo書號: 50489
詢問書籍請說出此書號!
有庫存
NT售價: 490
出版日:1/1/2019
頁數:362
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787302517146 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第Ⅰ部分簡介
第1章為什么需要反應式?3
1.1剖析反應式應用5
1.2應對負載6
1.3應對失敗7
1.4讓系統即時響應9
1.5避免大泥球10
1.6整合非反應式組件11
1.7小結12
第2章《反應式宣言》概覽13
2.1對用戶作出反應13
2.1.1理解傳統方法14
2.1.2使用共享資源的延遲分析16
2.1.3使用隊列限制最大延遲17
2.2利用并行性18
2.2.1通過并行化降低延遲19
2.2.2使用可組合的Future改善并行性21
2.2.3為序列式執行表象買單22
2.3并行執行的限制24
2.3.1阿姆達爾定律24
2.3.2通用伸縮性法則25
2.4對失敗作出反應26
2.4.1劃分與隔離28
2.4.2使用斷路器29
2.4.3監督30
2.5放棄強一致性32
2.5.1ACID2.033
2.5.2接受更新34
2.6對反應式設計模式的需求35
2.6.1管理復雜性36
2.6.2使編程模型更貼近真實世界37
2.7小結38
第3章行業工具39
3.1反應式的早期解決方案39
3.2函數式編程41
3.2.1不可變性42
3.2.2引用透明性44
3.2.3副作用45
3.2.4函數作為一等公民46
3.3即時響應用戶47
3.4對反應式設計的現有支持49
3.4.1綠色線程49
3.4.2事件循環50
3.4.3通信順序進程51
3.4.4Future和Promise53
3.4.5反應式擴展工具包58
3.4.6Actor模型59
3.5小結64
第Ⅱ部分微言大義
第4章消息傳遞67
4.1消息67
4.2垂直伸縮68
4.3“基于事件”與“基于消息”69
4.4“同步”與“異步”71
4.5流量控制73
4.6送達保證75
4.7作為消息的事件77
4.8同步消息傳遞79
4.9小結79
第5章位置透明性81
5.1什么是位置透明性?81
5.2透明化遠程處理的謬誤82
5.3基于顯式消息傳遞的糾正方案83
5.4優化本地消息傳遞84
5.5消息丟失85
5.6水平擴展性87
5.7位置透明性使測試更加簡單88
5.8動態組合88
5.9小結90
第6章分而治之91
6.1分層拆解問題92
6.2“依賴”與“子模塊”94
6.3構建你自己的大公司96
6.4規范和測試的優點97
6.5水平擴展性和垂直伸縮性98
6.6小結99
第7章原則性失敗處理101
7.1所有權意味著承諾101
7.2所有權隱含生命周期控制103
7.3所有級別上的回彈性104
7.4小結105
第8章有界一致性107
8.1封裝模塊糾正方案108
8.2根據事務邊界對數據和行為進行分組109
8.3跨事務邊界建模工作流109
8.4失敗單元即一致性單元110
8.5分離職責111
8.6堅持一致性的隔離范圍113
8.7小結114
第9章按需使用非確定性115
9.1邏輯編程和聲明式數據流115
9.2函數式反應式編程117
9.3不共享簡化并發118
9.4共享狀態的并發119
9.5如何窘境突圍?119
9.6小結121
第10章消息流123
10.1推動數據向前流動123
10.2模型化領域流程125
10.3認清回彈性的局限性125
10.4估計速率和部署規模126
10.5為流量控制進行規劃127
10.6小結127
第Ⅲ部分設計模式
第11章測試反應式應用程序131
11.1如何測試131
11.1.1單元測試132
11.1.2組件測試133
11.1.3聯動測試133
11.1.4集成測試133
11.1.5用戶驗收測試134
11.1.6黑盒測試與白盒測試134
11.2測試環境135
11.3異步測試136
11.3.1提供阻塞的消息接收者137
11.3.2選擇超時時間的難題139
11.3.3斷言消息的缺失145
11.3.4提供同步執行引擎146
11.3.5異步斷言148
11.3.6完全異步的測試149
11.3.7斷言沒有發生異步錯誤151
11.4測試非確定性系統154
11.4.1執行計劃的麻煩155
11.4.2測試分布式組件155
11.4.3模擬Actor156
11.4.4分布式組件157
11.5測試彈性157
11.6測試回彈性158
11.6.1應用程序回彈性158
11.6.2基礎設施的回彈性162
11.7測試即時響應性164
11.8小結165
第12章容錯及恢復模式167
12.1簡單組件模式167
12.1.1問題設定168
12.1.2模式應用168
12.1.3模式回顧170
12.1.4適用性171
12.2錯誤內核模式171
12.2.1問題設定172
12.2.2模式應用172
12.2.3模式回顧175
12.2.4適用性176
12.3放任崩潰模式176
12.3.1問題設定177
12.3.2模式應用177
12.3.3模式回顧178
12.3.4實現上的考慮179
12.3.5推論:心跳模式180
12.3.6推論:主動失敗信號模式180
12.4斷路器模式181
12.4.1問題設定182
12.4.2模式應用182
12.4.3模式回顧186
12.4.4適用性187
12.5小結187
第13章復制模式189
13.1主動-被動復制模式190
13.1.1問題設定190
13.1.2模式應用191
13.1.3模式回顧203
13.1.4適用性204
13.2多主復制模式204
13.2.1基于共識的復制205
13.2.2具有沖突檢測與處理方案的復制方式208
13.2.3無沖突的可復制數據類型210
13.3主動-主動復制模式217
13.3.1問題設定218
13.3.2模式應用218
13.3.3模式回顧225
13.3.4與虛擬同步模型的關系226
13.4小結227
第14章資源管理模式229
14.1資源封裝模式229
14.1.1問題設定230
14.1.2模式應用230
14.1.3模式回顧236
14.1.4適用性237
14.2資源借貸模式237
14.2.1問題設定238
14.2.2模式應用238
14.2.3模式回顧240
14.2.4適用性241
14.2.5實現上的考慮242
14.2.6變體:使用資源借貸模式進行局部公開242
14.3復雜命令模式243
14.3.1問題設定243
14.3.2模式應用244
14.3.3模式回顧251
14.3.4適用性252
14.4資源池模式252
14.4.1問題設定253
14.4.2模式應用253
14.4.3模式回顧255
14.4.4實現上的考慮256
14.5托管阻塞模式257
14.5.1問題設定257
14.5.2模式應用258
14.5.3模式回顧260
14.5.4適用性261
14.6小結262
第15章消息流模式263
15.1請求-響應模式264
15.1.1問題設定264
15.1.2模式應用265
15.1.3該模式的常見實例267
15.1.4模式回顧272
15.1.5適用性272
15.2消息自包含模式273
15.2.1問題設定273
15.2.2模式應用274
15.2.3模式回顧276
15.2.4適用性277
15.3詢問模式277
15.3.1問題設定278
15.3.2模式應用278
15.3.3模式回顧281
15.3.4適用性283
15.4轉發流模式283
15.4.1問題設定283
15.4.2模式應用284
15.4.3模式回顧284
15.4.4適用性285
15.5聚合器模式285
15.5.1問題設定285
15.5.2模式應用286
15.5.3模式回顧289
15.5.4適用性290
15.6事務序列模式290
15.6.1問題設定291
15.6.2模式應用291
15.6.3模式回顧293
15.6.4適用性294
15.7業務握手協議(或可靠投遞模式)294
15.7.1問題設定295
15.7.2模式應用295
15.7.3模式回顧300
15.7.4適用性301
15.8小結301
第16章流量控制模式303
16.1拉取模式303
16.1.1問題設定304
16.1.2模式應用304
16.1.3模式回顧306
16.1.4適用性307
16.2托管隊列模式307
16.2.1問題設定308
16.2.2模式應用308
16.2.3模式回顧310
16.2.4適用性310
16.3丟棄模式311
16.3.1問題設定311
16.3.2模式應用311
16.3.3模式回顧313
16.3.4適用性316
16.4限流模式316
16.4.1問題設定316
16.4.2模式應用317
16.4.3模式回顧320
16.5小結320
第17章狀態管理和持久化模式321
17.1領域對象模式321
17.1.1問題設定322
17.1.2模式應用322
17.1.3模式回顧326
17.2分片模式326
17.2.1問題設定326
17.2.2模式應用327
17.2.3模式回顧329
17.2.4重要警告329
17.3事件溯源模式330
17.3.1問題設定330
17.3.2模式應用330
17.3.3模式回顧333
17.3.4適用性333
17.4事件流模式334
17.4.1問題設定334
17.4.2模式應用334
17.4.3模式回顧336
17.4.4適用性337
17.5小結337
附錄A反應式系統圖示339
附錄B一個虛構的案例341
附錄C《反應式宣言》正文355
《反應式設計模式》介紹反應式應用程序設計的原則、模式和經典實踐,講述如何用斷路器模式將運行緩慢的組件與其他組件隔開、如何用事務序列(Saga)模式實現多階段事務以及如何通過分片模式來劃分數據集,分析如何保持源代碼的可讀性以及系統的可測試性(即使在存在許多潛在交互和失敗點的情況下)。

主要內容
? “反應式宣言”權威指南
? 流量控制、有界一致性、容錯等模式
? 得之不易的關于“什么行不通”的經驗
? 在巨大的負載下保持伸縮性的架構
《反應式設計模式》旨在成為引導你理解和設計反應式系統的綜合性指南,不僅提供《反應式宣言》的注解版本,還包括開創該宣言的緣由和論據。《反應式設計模式》濃墨重彩地描述一些反應式設計模式,這些模式實現反應式系統設計的多個方面;還列出了更深層次的文獻資源,以便你進一步研究。所陳述的模式形成一個連貫整體,雖然并非詳盡無遺,但其所包含的背景知識將使得讀者能在需要的時候識別、提煉和呈現出新模式。
讀者對象
《反應式設計模式》面向每一位想要實現反應式系統的人士。
? 《反應式設計模式》涵蓋反應式系統的架構設計以及設計理念,向架構師簡要介紹反應式應用程序及其組件的特性,并討論了這些模式的適用性。
? 踐行者將受益于書中對于每個模式所適用場景的詳盡討論。《反應式設計模式》列出各模式的應用步驟,并配備完整的源代碼;講述了在不同場景下,如何靈活運用和適配這些模式。
? 希望學到更多知識的讀者在觀看了Principles of Reactive Programming視頻課程后,將樂意了解反應式原則背后的思考過程,并可遵循參考文獻做進一步的研究。
閱讀《反應式設計模式》前,讀者不必預先了解反應式系統,但仍然需要熟悉通常的軟件開發,并具有一些排除分布式系統引發的困難的經驗。對于某些部分,基本理解函數式編程將有所裨益(例如了解如何使用不可變值和純函數進行編程),但不必了解范疇論。
導讀
《反應式設計模式》的內容是特意組織編排的,以便讀者可像讀一本故事書那樣翻閱。首先呈現一個介紹性示例,概述《反應式宣言》以及反應式工具集,進而探討反應式原則背后的哲學,最后從不同角度闡述設計反應式系統所需的設計模式。這段旅程涵蓋大量知識領域,并在文字描述中引用了不少額外的背景資料。通讀一遍,瀏覽相關內容,你將建立對書中知識范圍的直覺。但這通常只是進一步研究的起點;在自己的項目中應用從《反應式設計模式》學到的知識時,可回頭再次研讀,那時會獲得更深刻的洞察力。
如果你已經熟悉反應式系統面臨的挑戰,可跳過第1章;如果你已經熟悉大多數行業主流工具,則可跳過第3章。時間緊迫的讀者可直接開始閱讀第III部分講述的各個模式,但依然建議首先學習第II部分:模式的描述過程常引用相關解釋及理論背景,這些內容都是對應設計模式的衍生基礎。
具有更多設計和實現反應式系統的經驗后,預計你將再次研讀那些更富哲理性的章節——尤其是第8章和第9章;首次閱讀時,會覺得這兩章的內容難以理解,請不必擔心,反復研讀即可。

約定
由于在作為編程概念時,對英文單詞future的多重解讀已嚴重偏離其本身的含義,因此,所有將其作為編程概念引用的地方都使用首字母大寫的Future,就算沒有出現在代碼字體中也是如此。
英文單詞Actor的情況略有不同,在日常英語中Actor指舞臺上的一個人,以及一個動作或處理過程的參與者。因此,這個單詞只有在特別指 Actor 模型,或在代碼字體中作為 Actor 特質出現時,才會大寫。

源代碼下載
《反應式設計模式》的示例源代碼(作者提供的源代碼)可從GitHub下載。
《反應式設計模式》譯者對源代碼進行了重新調試,新代碼下載位置。
《反應式設計模式》正文列出的代碼都是經過譯者重新調試過的代碼。
讀者也可掃描封底的二維碼,下載這兩套代碼。
中文版還提供在線資源。
GitHub還提供其他功能,允許你討論《反應式設計模式》中的示例或報告問題,并歡迎你提出改進意見,這樣,其他讀者將受益于你的思考和經驗。
書中大部分示例代碼都用 Java 或 Scala 編寫,并將SBT用作構建工具。要查閱SBT詳細文檔;要查閱SBT入門資料。為構建和運行示例代碼,還需要使用JDK 8。
其他在線資源
可訪問獲取《反應式設計模式》所介紹模式的概述和附加材料。此外,讀者可免費訪問Manning出版社的私有Web論壇,在那里,可評論《反應式設計模式》、提出技術問題,還可獲得作者和其他用戶的幫助。可用Web瀏覽器訪問。可從這個頁面了解以下信息:注冊后如何訪問該論壇、可獲得哪些幫助以及該論壇的一些行為準則。
Manning承諾為讀者提供一個交流場所,在那里,你可與作者以及其他讀者進行有意義的對話。但作者不對參與程度做任何承諾,作者對AO的貢獻仍是自愿的和無償的。我們建議你向作者提一些富有挑戰性的問題,以引起他們的興趣!
只要《反應式設計模式》英文版尚未絕版,就可從Manning出版社的網站上訪問到作者在線論壇以及之前討論的存檔。
pagetop