Как стать автором
Обновить

Что такое реактивное программирование? Руководство для начинающих по написанию реактивного кода

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров24K
Всего голосов 6: ↑3 и ↓3+2
Комментарии16

Комментарии 16

Приведу небольшую цитату из своей будущей статьи:

В известной работе Kris Kowal " GTOR" реактивность понимается одновременно и более узко (механизм передачи данных между объектами), и более широко (рассматривая любую установку или чтение однократного или множественного значения, как частное проявление реактивности). В таком виде термин "реактивность" можно считать вырожденным, так как под него подходит вообще всё программирование как таковое.

Также можно встретить дословную трактовку "реактивности", как "программирование на реакциях", подразумевая на самом деле позднее связывание вызываемой стороны с вызывающей, что является одной из форм контроля потока исполнения (control flow). Более корректным термином для такой трактовки является "событийное программирование".

Приведённая же в данной работе формализация является более продуктивной, так как чётко ограничивает область действия определения разделяя реактивность от интерактивности, и подчёркивает важность не только, собственно, реакций, но и таких составных вещей как каскад и инварианты, которые дают настолько качественно иные свойства системы и способы написания кода, которые позволяют назвать это даже "реактивной парадигмой", где разработчик занимается контролем не потока исполнения инструкций (control flow), а контролем потоков данных между состояниями (data flow).

С помощью RxJS разработчики могут

писать только максимально отвратительный, вырвиглазный неподдерживаемый write-only код, это да.

За 10 лет был на проектах и везде прекрасно rxjs работает в связке с angular.

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

Ага, и поэтому его сейчас стремительно переводят на сигналы.

Если они до синхронных 10 лет шли, то асинхронные ждём к 2035.

Поддержу. Классная библиотека, если понимаешь чего от неехочешь

За 10 лет был на проектах и везде прекрасно rxjs работает в связке с angular.

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

Кстати, использование этого стека в корп сегменте с очень большими проектами может что-то сказать в пользу rxjs

Ясно, у всех hello world, а у angular избранные проекты, поэтому вырвиглаз код это "норма". Расходимся

Так и не понял, что тогда не реактивное программирование...
То есть если какое-то событие происходит 1000 раз в секунду, то тысячекратная перерисовка интерфейса на 60 герцовом мониторе позволит мне "с лёгкостью обрабатывать огромные массивы данных и создавать адаптивный опыт и что-то там ещё из маркетинговой чуши"?

Чем оно отличается от событийной концепции со слушателями и обработчиками событий?

Тем что позволяет избежать колбек хэлла и ивент-чейнов, которыми очень тяжко рулить, особенно в больших проектах.

По факту сабжект без пайпов, когда используешь только сабскрайб и есть вырождённый случай, который эквивалентен событийной концепции.

"Если вы видели Эксель - это именно оно"

А рассылка сообщений оконным функциям в windows это не оно?

Описывать реактивное программирование с помощью библиотеки, сочетающей несколько парадигм довольно странно.

Я думал тут будет - заказчик пришёл и попросил фичу А. Через 60 секунд она нужна в продакшн. И тут то и вступает реактивное программирование и супер шустрый ci cd пайплайн, который это доставит. И интеграционные тесты ещё реактивно пробегут

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации