Вы можете спросить себя, что такое реактивное программирование и почему оно важно? Существует множество определений: Википедия, StackOverflow, Microsoft и одно из Реактивного манифеста.

Но более простые обычно лучше. Одно из лучших определений (ИМХО) - от @staltz.

Реактивное программирование - это модель разработки, построенная вокруг потоков данных.

И из этого определения необходимо отличать реактивное программирование от RX (реактивное расширение), в то время как первое относится к модели разработки, второе относится к реализациям принципов реактивного программирования.

Где мы его используем здесь, в Loft?

В одном из наших предыдущих постов мы рассказали о NestJs и о том, почему мы используем его здесь, в Loft. Но как NestJ подключаются к реактивному программированию? Через Перехватчики.

Перехватчик - это класс компонентов, которые позволяют расширить возможности функции. Вы можете, например, связать логику до / после выполнения метода или преобразовать результат / исключение, возвращаемое этой функцией.

В Loft у нас есть два основных варианта использования перехватчиков: перехват информации UTM и функция логгера. В первом случае мы собираем информацию, чтобы проверить, из какой кампании конкретный пользователь перешел на конкретную конечную точку. Последний представляет собой простой способ профилирования определенных функций, позволяющий нам проверять продолжительность их выполнения.

Зачем это нужно?

Вот несколько ключевых моментов о том, почему вы должны начать думать о реактивном и использовать его.

Вы можете прослушивать и комбинировать данные из разных источников и форматов, такие как вызов реляционной базы данных и нереляционной базы данных.

Если вам нужно вызывать одну и ту же функцию, возвращающую обещание, много раз, одно определение потока может быть хорошим вариантом.

Observables имеют некоторые преимущества перед обещаниями, помимо возможности обрабатывать поток данных, его можно отменить или повторить.

Реактивное программирование - не панацея для работы с асинхронными данными. Это также связано с крутой кривой обучения, поскольку вам придется начать думать реактивным способом, а не императивным. Но знание того, как и когда использовать, необходимо, как и знание любого другого шаблона проектирования.

Наконец, перейдите по ссылке на наши открытые вакансии и присоединяйтесь к нам! Https://jobs.lever.co/loft