RXJAVA反应式编程=REACTIVE PROGRAMMING WITH RXJAVAPDF电子书下载
其他书籍
- 作 者:(波兰)托马什·努尔凯维茨
- 出 版 社:
- 出版年份:2019
- ISBN:
- 页数:0 页
图书介绍: 查看图书目录点击购买PDF全本电子书 上一篇:琴史下一篇:还原素描古典美 《RXJAVA反应式编程=REACTIVE PROGRAMMING WITH RXJAVA》目录 标签:反应式 反应 编程
第1章 使用RxJava实现反应式编程1
1.1 反应式编程与RxJava1
1.2 何时需要反应式编程2
1.3 RxJava是如何运行的3
1.3.1 推送与拉取3
1.3.2 异步与同步4
1.3.3 并发与并行7
1.3.4 延迟执行与立即执行9
1.3.5 双重性10
1.3.6 基数11
1.4 阻塞I/O与非阻塞I/O15
1.5 反应式抽象20
第2章 Reactive Extensions21
2.1 剖析rx.Observable21
2.2 订阅来自Observable的通知24
2.3 使用Subscription和Subscriber<T>控制监听器25
2.4 创建Observable26
2.4.1 掌握Observable.create()27
2.4.2 无穷流30
2.4.3 计时:timer()和interval()34
2.4.4 hot和cold类型的Observable34
2.5 用例:从回调API到Observable流35
2.6 rx.subjects.Subject40
2.7 ConnectableObservable42
2.7.1 使用publish().refCount()实现单次订阅43
2.7.2 ConnectableObservable的生命周期44
2.8 小结47
第3章 操作符与转换48
3.1 核心的操作符:映射和过滤48
3.1.1 使用map()进行一对一转换50
3.1.2 使用flatMap()进行包装53
3.1.3 使用delay()操作符延迟事件57
3.1.4 flatMap()之后的事件顺序58
3.1.5 使用concatMap()保证顺序60
3.2 多个Observable61
3.2.1 使用merge()将多个Observable合并为一个62
3.2.2 使用zip()和zipWith()进行成对地组合63
3.2.3 流之间不同步的情况:combineLatest()、withLatestFrom()和amb()66
3.3 高级操作符:collect()、reduce()、scan()、distinct()和groupBy()71
3.3.1 使用Scan和Reduce扫描整个序列71
3.3.2 使用可变的累加器进行缩减:Collect()73
3.3.3 使用single()断言的Observable只有一个条目74
3.3.4 使用distinct()和distinctUntilChanged()丢弃重复条目74
3.4 使用skip()、takeWhile()等进行切片和切块76
3.4.1 组合流的方式:concat()、merge()和switchOnNext()78
3.4.2 使用groupBy()实现基于标准的切块流84
3.4.3 下一步要学习什么86
3.5 编写自定义的操作符87
3.5.1 借助compose()重用操作符87
3.5.2 使用lift()实现高级操作符89
3.6 小结93
第4章 将反应式编程应用于已有应用程序94
4.1 从集合到Observable94
4.2 BlockingObservable:脱离反应式的世界95
4.3 拥抱延迟执行97
4.4 组合Observable98
4.5 命令式并发101
4.6 flatMap()作为异步链接操作符105
4.7 使用Stream代替回调109
4.8 定期轮询以获取变更111
4.9 RxJava的多线程113
4.9.1 调度器是什么113
4.9.2 使用subscribeOn()进行声明式订阅121
4.9.3 subscribeOn()的并发性和行为124
4.9.4 使用groupBy()进行批量请求128
4.9.5 使用observeOn()声明并发129
4.9.6 调度器的其他用途132
4.10 小结133
第5章 实现完整的反应式应用程序134
5.1 解决C10k问题134
5.1.1 传统的基于线程的HTTP服务器135
5.1.2 借助Netty和RxNetty实现非阻塞的HTTP服务器137
5.1.3 阻塞式和反应式服务器的基准测试144
5.1.4 反应式HTTP服务器之旅149
5.2 HTTP客户端代码149
5.3 关系数据库访问152
5.4 CompletableFuture与Stream156
5.4.1 CompletableFuture概述157
5.4.2 与CompletableFuture进行交互161
5.5 Observable与Single164
5.5.1 创建和消费Single165
5.5.2 使用zip、merge和concat组合响应167
5.5.3 与Observable和CompletableFuture的交互169
5.5.4 何时使用Single170
5.6 小结170
第6章 流控制和回压171
6.1 流控制171
6.1.1 定期采样和节流171
6.1.2 将事件缓冲至列表中174
6.1.3 窗口移动179
6.1.4 借助debounce()跳过陈旧的事件180
6.2 回压183
6.2.1 RxJava中的回压184
6.2.2 内置的回压187
6.2.3 Producer与缺失回压场景189
6.2.4 按照请求返回指定数量的数据192
6.3 小结196
第7章 测试和排错197
7.1 错误处理197
7.1.1 我的异常在哪里198
7.1.2 替代声明式的try-catch200
7.1.3 事件没有发生导致的超时203
7.1.4 失败之后的重试206
7.2 测试和调试209
7.2.1 虚拟时间209
7.2.2 单元测试中的调度器211
7.3 单元测试213
7.4 监控和调试219
7.4.1 doOn…()回调220
7.4.2 测量和监控221
7.5 小结223
第8章 案例学习224
8.1 使用RxJava进行Android开发224
8.1.1 避免Activity中的内存泄漏224
8.1.2 Retrofit对RxJava的原生支持227
8.1.3 Android中的调度器231
8.1.4 将UI事件作为流233
8.2 使用Hystrix管理失败236
8.2.1 使用Hystrix的第一步236
8.2.2 使用HystrixObservableCommand的非阻塞命令238
8.2.3 舱壁模式和快速失败239
8.2.4 批处理和合并命令241
8.2.5 监控和仪表盘245
8.3 查询NoSQL数据库248
8.3.1 Couchbase客户端API248
8.3.2 MongoDB客户端API249
8.4 Camel集成251
8.4.1 通过Camel来消费文件251
8.4.2 接收来自Kafka的消息252
8.5 Java 8的Stream和CompletableFuture252
8.5.1 并行流的用途253
8.5.2 选择恰当的并发抽象255
8.5.3 何时使用Observable255
8.6 内存耗费和泄漏256
8.7 小结260
第9章 未来的方向261
9.1 反应式流261
9.2 Observable和Flowable261
9.3 性能262
9.4 迁移262
附录A HTTP服务器的更多样例263
附录B Observable操作符的决策树269
附录C RxJava 1.0至RxJava 2.0的迁移指南272
关于作者306
关于封面306
相关图书
- 《化学反应工程》许志美主编 2019
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《药物合成反应》姚其正主编 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《教自闭症孩子主动发起和自我管理 应用关键反应训练提高社交技能》(美)Lynn Kern Koegel,(美)Robert L. Koegel着 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《全国高等医药院校药学类实验教材 药物合成反应实验 第3版》翟鑫 2019
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
作者其它书籍
- 《梦之海》陈晓丹,温慧责编;(法)科琳娜·蓓尔特兰德总主编;韦斯林,(乌拉圭)马格努译者;(乌拉圭)兰道尔夫-桑图里奥改编;(阿根廷)乔克绘画;刘慈欣 2020
- 《物理学进化》(美)阿尔伯特·爱因斯坦,(波兰)利奥波德·英费尔德 2019
- 《自律》胡莉萍责编;郑毓倩译者;(波兰)马丁·麦德斯 2019
- 《中国能否拯救世界?》(波兰)格泽高滋·W.科勒德克 2020
- 《布宜诺斯艾利斯传》(英)尼克·凯斯托着 2019
- 《说谎者》(英)克莱尔·麦金托什着 2020
- 《卡夫卡与少女们》(法)达尼埃尔·德马尔凯(DanielDesmarquest)着 2019
- 《RXJAVA反应式编程=REACTIVE PROGRAMMING WITH RXJAVA》(波兰)托马什·努尔凯维茨 2019
- 《天体运行论 全新插图版》(波兰)尼古拉·哥白尼着;姚守国译 2019
- 《战争论全集 第9卷 对有关战局的战略评析及相关战略史料 上》(德)卡尔·冯·克劳塞维茨着;陈川译 2019
出版社其它书籍
本类热门
- 1变通 受用一生的学问
- 2额尔古纳河右岸
- 3易经真的很容易
- 4海蒂怀孕大百科 全新第4版
- 5八次危机 中国的真实经验1949-2009
- 6法治的细节
- 7你是你吃出来的
- 8蛤蟆先生的希望
- 9杀死一只知更鸟
- 10天幕红尘
摘要:本文深入探讨了“RXJAVA反应式编程=REACTIVE PROGRAMMING WITH RXJAVA.pdf”电子书版,全面解析了RXJAVA反应式编程的核心概念、应用场景以及实践方法。通过详细阐述其优势、原理和实践案例,为读者提供了全面了解和掌握RXJAVA反应式编程的途径。
1、优势
RXJAVA反应式编程以其高效、简洁、易用的特点,在处理异步编程和数据流方面具有显著优势。首先,RXJAVA能够简化异步编程的复杂性,使得开发者能够以同步的方式编写异步代码,提高开发效率。其次,RXJAVA提供了丰富的操作符,可以轻松实现数据流的过滤、转换、合并等操作,提高代码的可读性和可维护性。最后,RXJAVA具有良好的兼容性和扩展性,可以与多种框架和库无缝集成,满足不同场景下的开发需求。
例如,在处理网络请求时,RXJAVA可以轻松实现数据的异步加载和更新,避免了传统异步编程中回调地狱的问题。同时,通过使用RXJAVA的操作符,可以实现对数据的实时监控和过滤,提高应用的响应速度和用户体验。
此外,RXJAVA还具备以下优势:支持背压机制,有效处理大量数据;支持多种数据源,如事件、网络请求、文件等;支持多种编程范式,如函数式编程、响应式编程等。
2、原理
RXJAVA基于观察者模式,通过Subject和Observer两个核心概念实现数据的异步传输。Subject作为数据的生产者,负责将数据发送给多个Observer;Observer作为数据的消费者,负责接收并处理数据。这种模式使得数据的生产者和消费者解耦,提高了系统的可扩展性和可维护性。
在RXJAVA中,Subject分为三种类型:Observable、Observerable和Subject。Observable用于创建数据流,Observerable用于订阅数据流,Subject则同时具备Observable和Observerable的功能。
RXJAVA还提供了丰富的操作符,如map、filter、flatMap等,用于对数据流进行转换、过滤、合并等操作。这些操作符使得开发者可以轻松实现复杂的数据处理逻辑,提高代码的可读性和可维护性。
3、应用场景
RXJAVA在多个领域都有广泛的应用,以下列举几个典型场景:
1)网络请求:RXJAVA可以轻松实现数据的异步加载和更新,提高应用的响应速度和用户体验。
2)事件处理:RXJAVA可以实现对事件的实时监控和过滤,提高系统的可扩展性和可维护性。
3)数据流处理:RXJAVA可以处理大量数据,支持背压机制,有效处理数据流。
4)UI更新:RXJAVA可以与Android UI框架结合,实现数据的实时更新和渲染。
4、实践案例
以下列举几个RXJAVA的实践案例,以供读者参考:
1)使用RXJAVA实现网络请求:通过创建Observable对象,订阅网络请求的数据流,并在Observer中处理数据。
2)使用RXJAVA处理事件:创建Subject对象,将事件发送给多个Observer,实现事件的实时监控和过滤。
3)使用RXJAVA处理数据流:创建Observable对象,对数据流进行转换、过滤、合并等操作,实现复杂的数据处理逻辑。
4)使用RXJAVA实现UI更新:将数据流与Android UI框架结合,实现数据的实时更新和渲染。
总结:
本文对“RXJAVA反应式编程=REACTIVE PROGRAMMING WITH RXJAVA.pdf”电子书版进行了详细阐述,全面解析了RXJAVA反应式编程的核心概念、应用场景以及实践方法。通过学习本文,读者可以深入了解RXJAVA的优势、原理和实践案例,为在实际项目中应用RXJAVA提供有力支持。
本文由nayona.cn整理
联系我们
关注公众号
微信扫一扫
支付宝扫一扫