RxJS - библиотека для "Продвинутого управления событиями" и "Более мощная альтернатива промисам" в одном лице. Она позволяет удобно организовать работу с событиями и асинхронным кодом, а также писать сложную логику декларативно. RxJS активно используется в фреймворке Angular, а также с Vue (Vue-rx) и, кроме того, лежит в основе реализации middleware для Redux (redux-observable) для React. За время нашей встречи мы изучим концепцию реактивного программирования, с головой окунемся в реализацию RxJS и детально изучим его реальное использование. Научимся писать свои операторы, а также разберем как самые популярные базовые операторы, так и менее популярные, но не менее полезные. Научимся правильно обрабатывать ошибки, манипулировать потоками и тестировать их. И все это – на практических задачах! Реактивное программирование, паттерн ReactiveX и библиотека RxJS Разбираем проблемы других подходов для работы с асинхронным кодом в JavaScript и в каких случаях использовать ReactiveX паттерн для работы с асинхронным кодом. Изучаем с структуру данных Observable и его API. Учимся грамотно создавать Observable и классифицировать его: конечные и бесконечные, Горячие и холодные. Разбираем базовые функции для создания потоков. Операторы RxJS Разбираемся, что такое "оператор RxJS" и учимся писать собственные операторы. Разбираемся как визуализировать Observable, используя "мраморные" (marble) диаграммы. Знакомимся с HOO (Hight order observable) и операторами высшего порядка, разбираем их особенности и применяем для решения типовых задач. Знакомимся с базовыми операторами и учимся применять их для решения типовых задач. Учимся комибинировать существующие операторы RxJS для создания новых. Операторы RxJS Изучаем способы отлова ошибок и их обработки. Рассматриваем важность расположения операторов RxJS для обработки ошибок. Контролируемыe Observable (Subject) Разбираем новую структуру данных Subject и его подвиды. Изучаем механизм мультикастинга и его применение для решения типовых зачач. Учимся применять потоки для коммуникации между компонентами. Виртуальное распределение (Schedulers) Разбираем синхронность и асинхронность потоков и операторов. Рассматриваем основные типы виртуального распределения и их особенности. Изучаем способы изменения виртуального распределения через операторы RxJS Тестирование Знакомимся с TestScheduler - механизмом для тестирования потоков и его синтаксисом. Тестируем Observable, используя "мраморные" (marble) диаграммы и TestScheduler. Результат Вы понимаете концепцию реактивного программирования. Вы знаете библиотеку RxJS, свободно разрабатываете и отлаживаете программы. Вы можете гибко управлять асинхронностью в ваших приложениях. У вас достаточно знаний для применения RxJS с фреймворками (Angular, React, Vue и других) и Node.js.