View all events
Published by O'Reilly Media, Inc.
Beginner
Write robust, reliable, and readable reactive applications for server-side and mobile devices
What you’ll learnIs this live event for you?ScheduleRxJava is a relatively new way of expressing and composing streams of data as well as asynchronous computations. In this two-day, hands-on, online course, Tomasz Nurkiewicz shows you how to use RxJava safely and effectively in both greenfield and legacy projects. You’ll discover how to work with fundamental concepts in Rx such as backpressure and hot vs. cold sources. You will also learn how to look for specific RX operators and understand their behavior. By the end of this online course, you will be capable of writing expressive, thread-safe, and well-performing code both on the server and on mobile devices.
What you’ll learn and how you can apply it
By the end of this live, hands-on course, you’ll understand:
- How to put the core principles behind RxJava into practice in your applications
- How to distinguish between specific RxJava operators and understand their behavior
- How to avoid common pitfalls with schedulers and multithreading
- How to work with an event-based, reactive programming model
And you’ll be able to:
- Write robust, reliable, and readable reactive applications for server-side and mobile devices
- Manage infinite streams of application data
- Create and execute unit and integration tests
This live event is for you because...
- You are an experienced Java programmer who wants to learn how to manage infinite streams of data and write highly reactive, throughput-sensitive applications
- You are a software architect who wants to learn how to design resilient, responsive, and scalable distributed systems, especially on the server and mobile devices
Prerequisites
- Working knowledge of Java programming
- Familiarity with functional programming concepts and Java 8 lambdas more specifically
Recommended Preparation:
Training materials for class:
Schedule
The time frames are only estimates and may vary according to how the class is progressing.
DAY 1
Introduction
- What is RxJava, Observable and Flowable (20 minutes, lecture + live coding)
- Difference between Observable and Flowable (5 minutes, lecture + live coding)
- How to create a Flowable (10 minutes, live coding)
Threading
- [Threading] subscribeOn() (20 minutes, lecture + live coding)
- [Threading] subscribeOn() vs. observeOn() (15 minutes, lecture + live coding)
Break: 15 min
Threading (cont’d)
- flatMap() and how it enables multithreading (20 minutes, lecture + live coding, exercise)
- zip() as a way of synchronizing work (20 minutes, lecture + live coding)
Throttling
- window() and buffer() operators (20 minutes, lecture + live coding)
Resiliency
- Monitoring and troubleshooting (20 minutes, lecture + live coding)
- Retrying on failures (20 minutes, lecture + live coding)
DAY 2
Testing
- Test subscriber and assertions (10 minutes, lecture + live coding)
- TestScheduler (20 minutes, lecture)
- TestScheduler (10 minutes, live coding)
Throttling
- groupBy() operator (15 minutes, lecture + live coding)
Backpressure
- What is backpressure (10 minutes, lecture)
Break: 15 min
Backpressure (cont’d)
- Backpressure strategies (20 minutes, lecture + live coding)
- Backpressure pitfalls (10 minutes lectures)
More Types
- Single, Maybe and Completable types (10 minutes lecture + live coding)
Real World Examples
- Retrofit HTTP client (10 minutes, demo)
- Android event handling (10 minutes, demo)
Tomasz Nurkiewicz is a senior software engineer at Allegro. Tomasz has spent half of his life programming (for the last decade professionally in Java land). He loves backend, tolerates JavaScript, is passionate about alternative JVM languages, is disappointed with the quality of software written these days (so often by himself!), and hates long methods and hidden side effects. Tomasz is interested in charting, data analysis and reporting and believes that computers were invented so that developers could automate boring and repetitive tasks. He is involved in open source and used to be very active on StackOverflow. Tomasz is an author, trainer, conference speaker, technical reviewer, and runner and has been recognized as DZone’s most valuable blogger. He claims that code not tested automatically is not a feature but just a rumor.