Reactive programming with RxJava
What you'll learn
- When to use RxJava and when to use regular Java streams
- What's the difference between RxJava and Java standard concurrency library
- Understand marble diagrams
- Apply Functional Reactive Programming (FRP) principles
- Boost application performance with painless, safe, multithreading code
- Write asynchronous code optimized for concurrency and parallel processing
- Basic Java programming
Functional Reactive Programming (FRP) is a different programming paradigm, just like Object Oriented Programming. It has gotten traction in the recent years where more and more technology adopt it for building responsive, reliable and maintainable systems. Writing multithreading code is usually difficult because you need to think how several pieces move at the same time and work together.
In this course I'll teach you RxJava, the Java implementation of Reactive Extensions to write safe, reliable multithreading code. It's being heavily in use in Android applications, but this course presents RxJava concepts in a generic way. You don't need to know anything about Android to use this course, learn and use RxJava in any kind of Java application.
You will learn how RxJava compares with Java standard library for writing multithreading code, and the parallel streams introduced in Java 8. In the section about use cases, I present you some examples of how RxJava solves particular challenges, so you can get started quickly. This course is meant to serve as a quick reference, the section about use cases doesn't follow a particular order, so you can skip and come back to lectures as you see fit.
The concepts you learn here will also help you understand other libraries that were inspired by Reactive Extensions.
Who this course is for:
- Java programmers (either Android or server side) facing concurrency and multithreading challenges
I have more than 10 years of experience on software engineering, including aspects like designing architectures, implementing solutions, releasing to production and providing support.
My main background is in Java backend technologies, but I also have been involved in frontend (Angular), Android, Python, and DevOps practices.
On my free time I usually run and read books (not at the same time!).