搜索
高级检索
高级搜索
书       名 :
著       者 :
出  版  社 :
I  S  B  N:
出版时间 :
Java编程方法论(响应式RxJava与代码设计实战)/Java编程方法论系列丛书
0.00     定价 ¥ 79.00
宁波大学园区图书馆
此书还可采购9本,持证读者免费借回家
  • ISBN:
    9787121364174
  • 作      者:
    作者:知秋
  • 出 版 社 :
    电子工业出版社
  • 出版日期:
    2019-06-01
收藏
编辑推荐

1. 本书是作者知秋实践经验的总结,业内专家小马哥、梁桂钊、尹相宇、朱勇铭、芋艿、泥瓦匠等倾情力荐。

2. 知秋是国内为数不多的响应式和NIO方向的专家,本书是讲解响应式技术的书籍,在进行源码导读的同时,也引导读者对代码设计进行思考。

3. 响应式是未来的编程趋势,本书深入解读响应式RxJava 2的源码,从设计到实现细节,帮助读者达到RxJava 2源码库组件级别的拓展。

4. 本书包含大量案例,案例按照功能迭代的方式进行讲解,另外作者还录制了相关视频,可以配合学习。


展开
作者简介

知秋,本名李飞,长期致力于基础代码库的研发工作,通过博客与视频平台bilibili,结合自己的经验做了大量源码解读的分享。对JDK、Spring、RxJava、Spring Reactor、Netty、Reactor-Netty等有很深刻的研究和独到的见解,并以此打造“Java编程方法论系列丛书”。基于开源精神,与志同道合的伙伴们一起创建了simviso开源分享团队,为开源社区服务。


展开
内容介绍

本书对RxJava 2的源码进行了深入解读,让读者可以从设计到实现细节上全面了解它,从而达到不仅会用而且可以进行RxJava 2源码库组件级别的拓展的程度。本书的目的不仅是介绍RxJava 2,而且更希望通过一个成熟、优秀的代码库来向读者展示阅读源码的思路及编程方面的技巧,其中包含了并发编程的实战技巧、数据结构的设计方法、设计模式的使用方法、函数式编程的各种技巧等,希望读者可以深入思考并获得属于自己的一套编程方法论。这也是“Java编程方法论系列丛书”的初衷,授之以鱼不如授之以渔。


展开
精彩书评

近些年来,从RxJava,到Java 9中引入的响应式流API,再到Spring WebFlux,乃至MongoDB推荐使用的响应式Java客户端驱动等,响应式编程在很多场合被高频地提及。我们可以大胆猜测,响应式编程在未来一定会成为*受欢迎的编程思想实践之一。RxJava作为响应式编程的Java语言实现,在国内却少有中文资料,而本书的出现正恰逢其时。李飞(知秋)作为响应式编程的先行者,通过书籍、博客和视频等方式不遗余力地投身至响应式编程的推广工作中,其大力推动了响应式编程在国内的普及,这值得我们每一个程序员学习和敬佩。

——朱勇铭 携程框架架构部 Java高级工程师

 

Spring 5发布之后,它带来了响应式Web开发框架WebFlux 。此时,响应式编程真正开始进入大多数Java后端开发工程师的视野。然而,国内在响应式编程的资料方面,绝大多数停留在入门使用层面。而本书,从入门到实战,继而到原理、源码,都进行了很好的覆盖。并且,本书的作者在两年前已经开始落地实践响应式编程了,相信本书可以为我们提供很好的学习体验和实战经验。

——芋艿 “芋道源码”博主

 

本书解密了响应式编程之美,深入浅出地介绍了响应式模式及源码。读完本书,可以掌握规范、合理的响应式设计,以及高质量的响应式代码实践。在大多数场景下,提高资源利用率很重要,尤其对于微服务下I/O密集型等场景来说尤其如此。

——泥瓦匠BYSocket 博主

展开
目录

第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


展开
加入书架成功!
收藏图书成功!
我知道了(3)
发表书评
读者登录

温馨提示:请使用宁波大学园区图书馆的读者帐号和密码进行登录

点击获取验证码
登录