Java編程方法論:回響式RxJava與代碼設計實戰

Java編程方法論:回響式RxJava與代碼設計實戰

《Java編程方法論:回響式RxJava與代碼設計實戰》,作者:知秋,2019年6月電子工業出版社出版,本書是作者知秋實踐經驗的總結,業內專家小馬哥、梁桂釗、尹相宇、朱勇銘、芋艿、泥瓦匠等傾情力薦。

基本介紹

  • 書名:Java編程方法論:回響式RxJava與代碼設計實戰
  • 作者:知秋
  • ISBN:978-7-121-36417-4
  • 頁數:296
  • 定價:79
  • 出版社:電子工業出版社
  • 出版時間:2019-06
  • 裝幀:平裝
  • 開本:16
內容提要,目錄,作者簡介,

內容提要

本書對RxJava 2的源碼進行了深入解讀,讓讀者可以從設計到實現細節上全面了解它,從而達到不僅會用而且可以進行RxJava 2源碼庫組件級別的拓展的程度。本書的目的不僅是介紹RxJava 2,而且更希望通過一個成熟、優秀的代碼庫來向讀者展示閱讀源碼的思路及編程方面的技巧,其中包含了並發編程的實戰技巧、數據結構的設計方法、設計模式的使用方法、函式式編程的各種技巧等,希望讀者可以深入思考並獲得屬於自己的一套編程方法論。這也是“Java編程方法論系列叢書”的初衷,授之以魚不如授之以漁。
本書適合有Java編程基礎的中高級Java開發工程師、想要學習代碼設計思路與技巧的讀者、對回響式編程感興趣的讀者閱讀

目錄

第1章 回響式編程總覽(Reactive Programming) 1
1.1 異步編程模式 1
1.1.1 並發 2
1.1.2 並行開發初探 3
1.2 流(Stream) 3
1.3 回響式流(Reactive Stream) 4
1.3.1 回響式流的特性 4
1.3.2 回響式開發的設計原則 5
1.3.3 回響式開發的好處 6
1.4 回響式開發工具庫 6
1.4.1 RxJava簡介 6
1.4.2 Reactor簡介 7
1.4.3 MongoDB簡介 8
1.4.4 回響式項目用例 8
1.5 Java 9中的回響式編程 10
1.5.1 回響式編程接口 10
1.5.2 Java 9回響式編程入門Demo 12
1.5.3 SubmissionPublisher類的源碼解讀 18
1.5.4 回響式編程整合Spring實戰案例 23
1.6 小結 29
第2章 在RxJava中創建Observable 30
2.1 回響式編程所涉及的設計模式 30
2.1.1 觀察者模式 30
2.1.2 疊代器模式 30
2.2 解讀reactivex.Observable 31
2.2.1 從Flow.Publisher到Observable 33
2.2.2 subscribe的二三事 33
2.2.3 create方法的設計思想 36
2.2.4 各式各樣的Observable 40
2.2.5 Observable.cache 43
2.2.6 無限流 49
2.2.7 在Observable內處理錯誤 54
2.2.8 定時控制Observable傳送數據 56
2.2.9 Disposable延伸 59
2.2.10 ConnectableObservable解讀 67
2.2.11 Observable中的publish.refCount解讀 76
2.2.12 RxJava中的Subject解讀 79
2.3 小結 89
第3章 RxJava 2中的操作 90
3.1 核心操作 90
3.1.1 使用filter進行條件過濾 90
3.1.2 使用map進行元素轉換 96
3.1.3 使用flatMap進行扁平化轉換 98
3.1.4 使用scan累加器 112
3.1.5 使用groupBy進行分組 114
3.2 多個Observable的合併操作 122
3.2.1 使用merge對Observable進行合併 122
3.2.2 使用zip方法進行合併 124
3.2.3 combineLatest操作 135
3.2.4 withLatestFrom操作 141
3.2.5 amb操作 142
3.3 高級操作 143
3.3.1 再談累加器scan 143
3.3.2 聚合操作reduce 144
3.3.3 收集操作collect 146
3.3.4 使用distinct去重 148
3.3.5 使用distinctUntilChanged過濾重複數據 152
3.3.6 其他操作 152
3.3.7 自定義操作 153
3.4 小結 159
第4章 對RxJava 2的設計探索 160
4.1 源的創建設計思路 160
4.2 中間操作的轉承 162
4.3 小結 166
第5章 Observable實戰 167
5.1 初版架子實現 167
5.1.1 DAO層面的處理工作 167
5.1.2 控制層的回響式實現 172
5.2 基於架子實現一個匯率查詢的服務 175
5.3 rxjava-web-spring-boot-starter的抽取設計 179
5.4 ObservableSseEmitter的設計實現 188
5.5 小結 196
第6章 RxJava 2中的多執行緒操作 197
6.1 初探RxJava並發編程 197
6.2 subscribeOn操作 211
6.3 observeOn操作 216
6.4 unsubscribeOn操作 220
6.5 調度器Scheduler 226
6.5.1 Schedulers.newThread方式 227
6.5.2 Schedulers.io方式 227
6.5.3 Schedulers.computation方式 228
6.5.4 Schedulers.from(Executor executor)自定義方式 228
6.6 小結 230
第7章 Flowable與背壓 231
7.1 回顧背壓 231
7.2 引入Flowable 233
7.3 探索Flowable.create 234
7.3.1 BackpressureStrategy.BUFFER策略 239
7.3.2 BackpressureStrategy.LATEST策略 246
7.3.3 BackpressureStrategy.DROP策略 249
7.4 將一個Observable轉化為一個Flowable 251
7.5 通過onBackpressureXXX操作來實現背壓策略 252
7.5.1 onBackPressureBuffer操作 255
7.5.2 onBackpressureLatest與onBackpressureDrop操作 256
7.6 Flowable.generate操作 257
7.7 小結 262
第8章 Flowable實戰 263
8.1 使用Flowable封裝JDBC 263
8.1.1 封裝部分查詢邏輯 263
8.1.2 封裝update邏輯 265
8.2 結合Spring Web套用使用Flowable 268
8.2.1 接口數據的獲取 269
8.2.2 回響式服務的源設計 271
8.3 單元測試 274
8.3.1 使用Mock Service Server進行測試 274
8.3.2 使用@Mock來進行一些服務測試 277
8.4 controller層的實現邏輯改造 279
8.5 小結 282

作者簡介

知秋,本名李飛,長期致力於基礎代碼庫的研發工作,通過部落格與視頻平台bilibili,結合自己的經驗做了大量源碼解讀的分享。對JDK、Spring、RxJava、Spring Reactor、Netty、Reactor-Netty等有很深刻的研究和獨到的見解,並以此打造“Java編程方法論系列叢書”。基於開源精神,與志同道合的夥伴們一起創建了simviso開源分享團隊,為開源社區服務。

熱門詞條

聯絡我們