
First off, we discuss what this series is, who it’s for and what you will learn following along. This video also contains our prebuilt "playground" where we will be writing all of our examples.
This video outlines the different sections of this course
To understand reactive programming, we first have to look at the history of programming paradigms and how each one compares and contrasts
This video furthers discusses the reactive paradigm with a diagram and code samples of what we can expect our code to look like in this paradigm.
This video puts together our “server-side” playground: basically, a combination of gulp, babel and nodemon that will let us write and run our sample code throughout this course while being able to take advantage of modern JavaScript.
This video completes our playground application with a workflow for rapidly testing out our client-side examples in a web environment.
For those who didn’t follow along with the previous two videos, this video shows you how to use the playground if you decided to just use the provided source.
In this video we build a traditional autocomplete textbox, solving the most common issues that we might face using basic JavaScript.
Next, we re-implement our autocomplete textbox using RxJS, and compare the resulting code with the last sample.
This video overviews, graphically, the three primary concepts of Reactive Extensions.
The core of the reactive paradigm is the observable. This video talks about how we can create our own, using the RxJS library.
Next up we take a look at how to clean up after our observables, as well as transform their values through a custom “operator”.
The RxJS library provides many built in observables that we can use, such as timers, intervals and conversions between array types and observables.
Now we take a look at how we can create observable sequences from other libraries, such as from jQuery events or asynchronous Node APIs.
Subjects are a built-in type in RxJS that allow us to have manual control over observable sequences.
This video goes over the different resources that we can use to help us understanding the RxJS library and its different features.
There are two “kinds” of observables: hot and cold. This video discusses the differences, and how to make a cold observable hot - allowing its single source of data to be shared.
These simple operators allow us to apply side effects to our workflows, as well as filter out items we don’t want, and even force a stream to being with a specified value before the original observable begins producing values.
These operators combine multiple observables into one.
These core operators allow us to transform observables in different ways.
Reduce and Scan are used to take many values and turn them into one.
These operators allow us to combine multiple values into single arrays of values that are emitted into the stream at once.
Now we take a look at operators that are used to grab specific items out of the stream, while ignoring others.
Next up we take a look at combining multiple observables into one, in more powerful ways than simply merging or concatenation.
Catch and Retry allow us to easily recover from potential errors that may be emitted in our streams.
We wrap up our discussion of important operators by summarizing the ones that we’ve went though in this section.
This example shows a non-trivial example of using RxJS to accomplish a simple drag/drop operation using the operators we’ve discussed in this course.
And that’s it guys! I hope you enjoyed the course!
As we all know, web development moves quickly. With frameworks like Angular 2 and React, we’ve seen a massive move in the industry from the imperative programming paradigm to the functional and reactive paradigms. To be successful in modern development, it’s paramount to have an understanding of how these paradigms work, and the tools that we can use to express them.
This course is an introduction to the core concepts of the reactive programming paradigm. We will use the RxJS (Reactive Extensions for JavaScript) library as a way to explore this mindset and develop an understanding of how to think reactively. Reactive Extensions are used by many companies - from Netflix to Microsoft and even Github!
Did you know that Angular 2 uses Reactive Extensions for its asynchronous operations? If Angular 2 is your goal, then learning RxJS is an absolute must!
Even frameworks that don’t use RxJS directly, such as Facebook’s React, are modeled after this paradigm - and integrate with it flawlessly.
If you plan on moving forward with modern development, reactive programming should be your next step. With the knowledge in this course, you will gain confidence in working with modern frameworks and libraries. Even if you’re not interested in writing web applications, the concepts here apply everywhere. Reactive Extensions itself has many ports to other languages that you can easily move between!
The concepts in this course offer a new way to reason about code - and will apply no matter what language, platform, framework, or library you wish to use! If you want to be on the forefront of modern web development, then this course is your next step!