Компьютерное программирование — это процесс создания инструкций, которые могут указывать компьютеру выполнять некоторые задачи. В основном мы можем выделить три типа компьютерных программ в современном мире. А именно Трансформационные Программы, Интерактивные Программы и Реактивные Программы. Трансформационные программы довольно просты. Они принимают набор входных данных и производят выходные данные. Интерактив немного отличается, он взаимодействует с пользователями и другими программами на своей скорости и производит результаты. Reactive также взаимодействует с пользователями и производит результаты, на этот раз не своей скоростью, а скоростью пользователя.

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

Например, подумайте о выражении [a = b + c]. В императивном программировании, чтобы принять значение [a], мы должны снова и снова пересчитывать упомянутое выражение всякий раз, когда значения [b] и [c] изменяются. Но в Reactive всякий раз, когда значения [ b ] и [ c ] изменяются, значение [ a ] ​​будет автоматически обновляться без выполнения выражения. Всякий раз, когда происходит событие изменения для [ b ] или [ c ], [ a ], который прослушивает поток данных, автоматически обновляет себя.

Есть четыре основных принципа, которые следует применять при реактивном программировании. Мы можем думать не только о принципах, но и о ограничениях Reactive Realm.

  • Отзывчивый
  • Устойчивый
  • Масштабируемость
  • Событийный

В программировании есть три механизма получения входных данных. Толкать, тянуть или тянуть и толкать. Вытягивание — это когда программе нужны данные, и она ждет, пока данные не будут готовы. Нажатие — это программа, которая выполняется асинхронно и извлекает данные всякий раз, когда данные готовы. Следовательно, реактивное программирование использует потоки данных, которые он использует «вытягивание» для извлечения данных.

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

Есть несколько хороших фреймворков для реактивного программирования. ReactiveX выпустила Reactive Extensions для основных языков программирования. React — еще один хороший Reactive JavaScript Framework.

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

Первоначально опубликовано на http://ayeshforyou.blogspot.com.