Reactive-programming lecture

This contains the material for my reactive programming lecture, still under construction


Introduction: this is a general introduction to reactive programming and reactive architectures and their rising role in modern systems.

Origins and ecosystem: about the origins of the functional reactive paradigm and the current reactive programming ecosystem.

Introduction to TypeScript: TypeScript is the the language which we will use in the lecture, for examples and exercises, in combination with RxJS. It is also an interesting language in its own right, gaining popularity on the web. This section will get you started in coding TypeScript in no time!

Declarative programming: In this section we will learn how to program without loops! We will adopt a functional-style which expresses intent in our programs rather than implementation detail, and get a taste for the benefits that this brings in terms of clarity and reuse. We will also find out that we can use the same functional operators both for synchronous and asynchronous collections (streams).

Asynchronous programming: this will introduce the notion of latency and the various mechanisms we can use to handle latency in programs (callbacks, observer, promises, async/await, etc.).

Functional reactive programming and Rx basics: This is where we start becoming reactive and look at the fundamental definitions and abstractions that underlying the RxJS library.

Introduction to React & Redux: React in combination with Redux is a very functional approach to UI programming and is well suited to reactive applications and principles, as we’ll see in this section.

Demo app

This demo Wikipedia search application illustrates a number of principles and techniques that will be introduced during the lecture. It is implemented in TypeScript, using RXJS, React, Redux and Redux-Observable.
Reactive Wikipedia Search (source is here).

Additional resources

Copyright notice

©Jonas Chapuis and Nexthink S.A., 2018. Unauthorized use and/or duplication of this material without express and written permission from the owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to the owner with appropriate and specific direction to the original content.


Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.