重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

Posted 服务端思维

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦相关的知识,希望对你有一定的参考价值。

知秋   

      今天,我告诉大家一个好消息,我的好朋友「知秋」的新书Java编程方法论:响应式RxJava与代码设计实战正式预售啦。

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

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

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

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

01

内容简介

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

02

专家评价


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

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


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

芋艿 “芋道源码”博主


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

泥瓦匠BYSocket 博主


03

推荐作序

重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

小马哥(mercyblitz)


       如果说笔者是国内提出响应式问题的第一人的话,那么知秋就是国内第一个解决响应式问题的人。作为国内为数不多的响应式以及NIO方面的专家,在技术研究上,他追求格物致知,不轻易忽略技术细节;在知识分享上,他可谓知无不言,言无不尽,不仅在社交群中答疑解惑,而且录制免费视频,发布在B站以及YouTube频道上,并得到了Josh Long等“大牛”的推文(Twitter)。或许以上方式还不足以完整地讨论Java响应式技术,因此,知秋选择了漫长而又艰苦的著书之路。尽管他是笔者的朋友,然而“内举不避亲”,笔者郑重地向读者朋友推荐本书。这是中国大陆地区(不含港澳台地区)第一本全面解读Java响应式技术的书籍,作者的技术积累雄厚,书中的知识脉络循序渐进。同时,这也是一本引人深思的书,在进行源码导读的同时,也引导读者对代码设计进行思考。另外,这又是一本知识苦旅的书,因为它的涉及面较广,读者不仅需要具备一定的Java并发以及面向对象设计的基础,而且需要花费较多的时间去反复推敲书中的有关内容。正所谓“夫夷以近,则游者众;险以远,则至者少” ,笔者希望读者在购买本书后,不轻言放弃,当你面临挑战时,那才是成长的开始。同时,笔者也期盼读者将响应式技术付诸实践,提早“触碰”未来。

重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

梁桂钊


       有幸与李飞兄相识多年,他严谨的治学态度和认真的工作作风让我敬佩不已。值得一提的是,李飞兄是一个非常乐于分享知识和帮助他人解惑的人。我经常在微信群中看到他热情地帮助他人分析问题并提供解答思路。此外,他晚上还经常开视频来分享自己对Java编程方法论的思考与心得。当然,这些视频是免费、公开的,其中很多内容涉及本书的知识点,可以认为是本书很好的补充。事实上,我也是他的忠实听众之一,所以非常推荐大家在购买本书的同时结合视频一起学习,如此则效果更佳。因此,我对他充沛的精力和满满的分享精神甚是佩服。写书殊为不易,分享精神更是难能可贵,因此,当我得知李飞兄要将他对Java编程和响应式编程的技术经验编写成书的时候,甚是欣喜,因为我相信这本书不仅会给读者带来响应式编程等核心知识的深入理解和技术成长,同时也会让读者对Java编程方法论有自己的思考。本书详细介绍了RxJava的源码细节和后端的实战使用方法,不论是刚接触响应式编程的入门读者,还是已经有响应式编程实战经验的进阶读者,阅读本书都会收获颇多。


重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

尹相宇


       响应式编程日益流行,如今Java语言正经历着快速迭代,然而很多Java开发者仍沉浸在Java 7/Java 8的世界。在Java 9发布前飞哥已经开始着手编写本系列丛书的准备工作,目标是让广大开发者能够学习全新的Java语言。如今的Java已经提供了函数式编程支持、模块化的JDK和模块化开发支持、对流式编程友好的G1垃圾回收器、低延迟的ZGC等特性,包含的内容非常丰富。由于计划写的内容很多,飞哥后来索性将响应式编程的部分拆分出来,成为现在我们所看到的这本书。时过境迁,Java语言早已不是被人诟病的臃肿语言,在其之上大量的精妙设计得以实现,事实证明Java拥有独特的魅力和经久不衰的生命力。学习响应式编程最重要的是理解它的设计思想,我们不能只将RxJava、Reactor以及Spring WebFlux作为一个工具框架看待,会使用它们并不意味着能够驾驭它们。学习这本书会让你了解响应式编程如何带来程序性能的提升,以及什么是响应式编程的正确使用方式。如果说代码是躯体,那么什么才是灵魂?躯体和灵魂相比,谁又是永生的?本书所讲的不只是具体的使用方法,还会讲解其中的设计思想:从它的源码设计中学习如何设计,通过源码还原其本质。机会总是留给有准备的人,抓住Java的响应式编程趋势,追寻自己所向往的生活。

04

作者简介

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


05

目录概览


第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


06

预售通道

重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

近期热文

1

2

3

重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦

期待您的加入,一起成长



以上是关于重磅!好友「知秋」的新书《Java编程方法论:响应式RxJava与代码设计实战》正式预售啦的主要内容,如果未能解决你的问题,请参考以下文章

总结知秋大佬分享响应式编程,小马哥头脑风暴

电子书《Java编程方法论:响应式RxJava与代码设计实战》

Java并发编程的艺术--一书知秋

响应式编程第二弹:RxJava 2设计探索

好友新书发布,祝贺(送福利)

一叶知秋:扬声器的冲激响应与阻抗频率特性