RxJava反应式编程(影印版 英文版)

RxJava反应式编程(影印版 英文版)
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
2017-10
版次: 1
ISBN: 9787564173708
定价: 92.00
装帧: 平装
开本: 16开
纸张: 胶版纸
页数: 345页
正文语种: 英语
2人买过
  •   在今天这个手机APP驱动的时代,程序的异步性和响应性至关重要,响应式编程能帮助你编写更可靠、更易伸缩且性能更好的代码。在《RxJava反应式编程(影印版 英文版)》这本务实的书中,Java开发者首先会学习到如何用反应式视角看待问题,然后再借助这一令人兴奋的全新编程范式所提供的优秀特性构建应用程序。
      作者Tomasz Nurkiewicz(托马什·勒克威茨)和Ben Christensen(本·克斯藤森)引入了使用RxJava库的具体例子,解决安卓设备和服务端上的真实性能问题。你会学到RxJava如何利用并行和并发来帮助我们解决今天的问题。
      《RxJava反应式编程(影印版 英文版)》同时也提供了即将发布的2.0版本的预览。 Foreword
    Introduction
    1. Reactive Programming with RxJava
    Reactive Programming and RxJava
    When You Need Reactive Programming
    How RxJava Works
    Push versus Pull
    Async versus Sync
    Concurrency and Parallelism
    Lazy versus Eager
    Duality
    Cardinality
    Mechanical Sympathy: Blocking versus Nonblocking I/O
    Reactive Abstraction

    2. Reactive Extensions
    Anatomy of rx.Observable
    Subscribing to Notifications from Observable
    Capturing All Notifications by Using Observer
    Controlling Listeners by Using Subscription and Subscriber
    Creating Observables
    Mastering Observable.create0
    Infinite Streams
    Timing: timer() and interval()
    Hot and Cold Observables
    Use Case: From Callback API to Observable Stream
    Manually Managing Subscribers
    rx.subjects.Subject
    ConnectableObservable
    Single Subscription with publishO.refCountO
    ConnectableObservable Lifecycle
    Summary

    3. Operators and Transformations
    Core Operators: Mapping and Filtering
    1-to-1 Transformations Using map()
    Wrapping Up Using flatMap0
    Postponing Events Using the delay() Operator
    Order of Events After flatMap0
    Preserving Order Using concatMap0
    More Than One Observable
    Treating Several Observables as One Using merge()
    Pairwise Composing Using zip() and zipWith()
    When Streams Are Not Synchronized with One Another: combineLatest(),
    withLatestFrom(), and amb()
    Advanced Operators: collect(), reduce(), scan(), distinct(), and groupBy()
    Scanning Through the Sequence with Scan and Reduce
    Reduction with Mutable Accumulator: collect()
    Asserting Observable Has Exactly One Item Using single()
    Dropping Duplicates Using distinct() and distinctUntilChanged()
    Slicing and Dicing Using skip(), takeWhile(), and Others
    Ways of Combining Streams: concat(), merge(), and switchOnNext()
    Criteria-Based Splitting of Stream Using groupBy0
    Where to Go from Here?
    Writing Customer Operators
    Reusing Operators Using compose()
    Implementing Advanced Operators Using lift()
    Summary

    4. Applying Reactive Programming to Existing Applications
    From Collections to Observables
    BlockingObservable: Exiting the Reactive World
    Embracing Laziness
    Composing Observables
    Lazy paging and concatenation
    Imperative Concurrency
    flatMap0 as Asynchronous Chaining Operator
    Replacing Callbacks with Streams
    Polling Periodically for Changes
    Multithreading in RxJava
    What Is a Scheduler?
    Declarative Subscription with subscribeOn()
    subscribeOn0 Concurrency and Behavior
    Batching Requests Using groupBy()
    Declarative Concurrency with observeOn()
    Other Uses for Schedulers
    Summary

    5. Reactive from Top to Bottom
    Beating the C1Ok Problem
    Traditional Thread-Based HTTP Servers
    Nonblocking HTTP Server with Netty and RxNetty
    Benchmarking Blocking versus Reactive Server
    Reactive HTTP Servers Tour
    HTTP Client Code
    Nonblocking HTTP Client with RxNetty
    Relational Database Access
    NOTIFY AND LISTEN on PostgreSQL Case Study
    CompletableFuture and Streams
    A Short Introduction to CompletableFuture
    Interoperability with CompletableFuture
    Observable versus Single
    Creating and Consuming Single
    Combining Responses Using zip, merge, and concat
    Interoperability with Observable and CompletableFuture
    When to Use Single?
    Summary

    6. Flow Control and Backpressure
    Flow Control
    Taking Periodic Samples and Throttling
    Buffering Events to a List
    Moving window
    Skipping Stale Events by Using debounce()
    Backpressure
    Backpressure in RxJava
    Built-in Backpressure
    Producers and Missing Backpressure
    Honoring the Requested Amount of Data
    Summary

    7. Testing and Troubleshooting
    Error Handling
    Where Are My Exceptions?
    Declarative try-catch Replacement
    Timing Out When Events Do Not Occur
    Retrying After Failures
    Testing and Debugging
    Virtual Time
    Schedulers in Unit Testing
    Unit Testing
    Monitoring and Debugging
    doOn...() Callbacks
    Measuring and Monitoring
    Summary

    8. Case Studies
    Android Development with RxJava
    Avoiding Memory Leaks in Activities
    Retrofit with Native RxJava Support
    Schedulers in Android
    UI Events as Streams
    Managing Failures with Hystrix
    The First Steps with Hystrix
    Nonblocking Commands with HystrixObservableCommand
    Bulkhead Pattern and Fail-Fast
    Batching and Collapsing Commands
    Monitoring and Dashboards
    Querying NoSQL Databases
    Couchbase Client API
    MongoDB Client API
    Camel Integration
    Consuming Files with Camel
    Receiving Messages from Kafka
    Java 8 Streams and CompletableFuture
    Usefulness of Parallel Streams
    Choosing the Appropriate Concurrency Abstraction
    When to Choose Observable?
    Memory Consumption and Leaks
    Operators Consuming Uncontrolled Amounts of Memory
    Summary

    9. Future Directions
    Reactive Streams
    Observable and Flowable
    Performance
    Migration
    A. More HTTP Server Examples
    B. A Decision Tree of Observable Operators
    Index
  • 内容简介:
      在今天这个手机APP驱动的时代,程序的异步性和响应性至关重要,响应式编程能帮助你编写更可靠、更易伸缩且性能更好的代码。在《RxJava反应式编程(影印版 英文版)》这本务实的书中,Java开发者首先会学习到如何用反应式视角看待问题,然后再借助这一令人兴奋的全新编程范式所提供的优秀特性构建应用程序。
      作者Tomasz Nurkiewicz(托马什·勒克威茨)和Ben Christensen(本·克斯藤森)引入了使用RxJava库的具体例子,解决安卓设备和服务端上的真实性能问题。你会学到RxJava如何利用并行和并发来帮助我们解决今天的问题。
      《RxJava反应式编程(影印版 英文版)》同时也提供了即将发布的2.0版本的预览。
  • 目录:
    Foreword
    Introduction
    1. Reactive Programming with RxJava
    Reactive Programming and RxJava
    When You Need Reactive Programming
    How RxJava Works
    Push versus Pull
    Async versus Sync
    Concurrency and Parallelism
    Lazy versus Eager
    Duality
    Cardinality
    Mechanical Sympathy: Blocking versus Nonblocking I/O
    Reactive Abstraction

    2. Reactive Extensions
    Anatomy of rx.Observable
    Subscribing to Notifications from Observable
    Capturing All Notifications by Using Observer
    Controlling Listeners by Using Subscription and Subscriber
    Creating Observables
    Mastering Observable.create0
    Infinite Streams
    Timing: timer() and interval()
    Hot and Cold Observables
    Use Case: From Callback API to Observable Stream
    Manually Managing Subscribers
    rx.subjects.Subject
    ConnectableObservable
    Single Subscription with publishO.refCountO
    ConnectableObservable Lifecycle
    Summary

    3. Operators and Transformations
    Core Operators: Mapping and Filtering
    1-to-1 Transformations Using map()
    Wrapping Up Using flatMap0
    Postponing Events Using the delay() Operator
    Order of Events After flatMap0
    Preserving Order Using concatMap0
    More Than One Observable
    Treating Several Observables as One Using merge()
    Pairwise Composing Using zip() and zipWith()
    When Streams Are Not Synchronized with One Another: combineLatest(),
    withLatestFrom(), and amb()
    Advanced Operators: collect(), reduce(), scan(), distinct(), and groupBy()
    Scanning Through the Sequence with Scan and Reduce
    Reduction with Mutable Accumulator: collect()
    Asserting Observable Has Exactly One Item Using single()
    Dropping Duplicates Using distinct() and distinctUntilChanged()
    Slicing and Dicing Using skip(), takeWhile(), and Others
    Ways of Combining Streams: concat(), merge(), and switchOnNext()
    Criteria-Based Splitting of Stream Using groupBy0
    Where to Go from Here?
    Writing Customer Operators
    Reusing Operators Using compose()
    Implementing Advanced Operators Using lift()
    Summary

    4. Applying Reactive Programming to Existing Applications
    From Collections to Observables
    BlockingObservable: Exiting the Reactive World
    Embracing Laziness
    Composing Observables
    Lazy paging and concatenation
    Imperative Concurrency
    flatMap0 as Asynchronous Chaining Operator
    Replacing Callbacks with Streams
    Polling Periodically for Changes
    Multithreading in RxJava
    What Is a Scheduler?
    Declarative Subscription with subscribeOn()
    subscribeOn0 Concurrency and Behavior
    Batching Requests Using groupBy()
    Declarative Concurrency with observeOn()
    Other Uses for Schedulers
    Summary

    5. Reactive from Top to Bottom
    Beating the C1Ok Problem
    Traditional Thread-Based HTTP Servers
    Nonblocking HTTP Server with Netty and RxNetty
    Benchmarking Blocking versus Reactive Server
    Reactive HTTP Servers Tour
    HTTP Client Code
    Nonblocking HTTP Client with RxNetty
    Relational Database Access
    NOTIFY AND LISTEN on PostgreSQL Case Study
    CompletableFuture and Streams
    A Short Introduction to CompletableFuture
    Interoperability with CompletableFuture
    Observable versus Single
    Creating and Consuming Single
    Combining Responses Using zip, merge, and concat
    Interoperability with Observable and CompletableFuture
    When to Use Single?
    Summary

    6. Flow Control and Backpressure
    Flow Control
    Taking Periodic Samples and Throttling
    Buffering Events to a List
    Moving window
    Skipping Stale Events by Using debounce()
    Backpressure
    Backpressure in RxJava
    Built-in Backpressure
    Producers and Missing Backpressure
    Honoring the Requested Amount of Data
    Summary

    7. Testing and Troubleshooting
    Error Handling
    Where Are My Exceptions?
    Declarative try-catch Replacement
    Timing Out When Events Do Not Occur
    Retrying After Failures
    Testing and Debugging
    Virtual Time
    Schedulers in Unit Testing
    Unit Testing
    Monitoring and Debugging
    doOn...() Callbacks
    Measuring and Monitoring
    Summary

    8. Case Studies
    Android Development with RxJava
    Avoiding Memory Leaks in Activities
    Retrofit with Native RxJava Support
    Schedulers in Android
    UI Events as Streams
    Managing Failures with Hystrix
    The First Steps with Hystrix
    Nonblocking Commands with HystrixObservableCommand
    Bulkhead Pattern and Fail-Fast
    Batching and Collapsing Commands
    Monitoring and Dashboards
    Querying NoSQL Databases
    Couchbase Client API
    MongoDB Client API
    Camel Integration
    Consuming Files with Camel
    Receiving Messages from Kafka
    Java 8 Streams and CompletableFuture
    Usefulness of Parallel Streams
    Choosing the Appropriate Concurrency Abstraction
    When to Choose Observable?
    Memory Consumption and Leaks
    Operators Consuming Uncontrolled Amounts of Memory
    Summary

    9. Future Directions
    Reactive Streams
    Observable and Flowable
    Performance
    Migration
    A. More HTTP Server Examples
    B. A Decision Tree of Observable Operators
    Index
查看详情
12
相关图书 / 更多
RxJava反应式编程(影印版 英文版)
RxJava反应式编程
Christensen 著;[波兰】 托马什·努尔凯维茨【美]本·克里斯滕森(Ben(Tomasz,Nurkiewicz)【美】本·克里斯滕森()、张卫滨 译
RxJava反应式编程(影印版 英文版)
RxJava 2.x 实战
沈哲 著
RxJava反应式编程(影印版 英文版)
RxJava响应式编程
李衍顺
您可能感兴趣 / 更多
RxJava反应式编程(影印版 英文版)
无辜者的谎言(相信我!看到结局你一定会头皮发麻;全美读者推荐的悬疑神作,GOODREADS高分作品)
[美]A.R.托雷 著;梁颂宇 译;星文文化 出品
RxJava反应式编程(影印版 英文版)
孩子,把你的手给我1:怎么说孩子才爱听,怎么教孩子才肯学?帮助每一位3-12岁孩子的父母结束与孩子的所有冲突!
[美]海姆·G.吉诺特
RxJava反应式编程(影印版 英文版)
哲学、历史与僭政——重审施特劳斯与科耶夫之争
[美]弗罗斯特(Bryan-Paul Frost) 编;[美]伯恩斯(Timothy W. Burns)
RxJava反应式编程(影印版 英文版)
怎样做成大事
[美]丹·加德纳(Dan Gardner) 著;贾拥民 译;湛庐文化 出品;[丹麦]傅以斌(Bent Flyvbjerg)
RxJava反应式编程(影印版 英文版)
力量训练的科学基础与实践应用(第三版)
[美]弗拉基米尔· M.扎齐奥尔斯基;[美]威廉·J.克雷默;[美]安德鲁· C.弗赖伊
RxJava反应式编程(影印版 英文版)
1200年希腊罗马神话
[美]伊迪丝·汉密尔顿
RxJava反应式编程(影印版 英文版)
爱情心理学(新编本)
[美]罗伯特·J. 斯腾伯格 (美)凯琳·斯腾伯格 倪爱萍 译
RxJava反应式编程(影印版 英文版)
黄金圈法则
[美]西蒙·斯涅克 著;磨铁文化 出品
RxJava反应式编程(影印版 英文版)
最后一章
[美]厄尼·派尔
RxJava反应式编程(影印版 英文版)
汤姆·索亚历险记 彩图注音版 一二三四年级5-6-7-8-9岁小学生课外阅读经典 儿童文学无障碍有声伴读世界名著童话故事
[美]马克 吐温
RxJava反应式编程(影印版 英文版)
富兰克林自传 名家全译本 改变无数人命运的励志传奇 埃隆马斯克反复推荐 赠富兰克林签名照及精美插图
[美]本杰明·富兰克林 著;李自修 译
RxJava反应式编程(影印版 英文版)
国际大奖图画书系列 共11册(小老鼠的恐惧的大书,大灰狼,红豆与菲比,别烦我,下雪了 ,穿靴子的猫 ,先有蛋,绿 ,特别快递,如果你想看鲸鱼 ,一个部落的孩子 ) 麦克米伦世纪
[美]莱恩·史密斯 (英)埃米莉·格雷维特 (美)劳拉·瓦卡罗·等/文 (英)埃米莉·格雷维特 等/图 彭懿 杨玲玲 阿甲 孙慧阳 白薇 译