Введение в реактивное функциональное программирование


Первоначально опубликовано на:

вступление

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

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

Эта статья познакомит вас с Реактивное функциональное программирование.

Что такое реактивное программирование?

Интерактивные программы работают в своем собственном темпе и в основном имеют дело с коммуникацией, в то время как реактивные программы работают только в ответ на внешние требования и в основном имеют дело с > точной обработкой прерываний.
— Жерар Берри (директор по исследованиям INRIA)

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

  • Поток может испускать три вещи:
  • Ценность
  • Ошибка
  • Завершенный сигнал

Что такое асинхронные потоки данных?

Поток — это последовательность текущих событий, упорядоченных во времени. Примеры событий включают переменные, пользовательский ввод, свойства или события кликов.

реактивные потоки gif.gif

Приведенная выше диаграмма называется мраморной диаграммой, и они обычно используются для объяснения различных аспектов реактивных потоков.


Реактивный манифест

Прежде чем вы начнете свое путешествие по созданию реактивных систем, вам следует ознакомиться с Reactive Manifesto. Реактивный манифест объясняет различные характеристики, которыми должны обладать реактивные системы.

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

Реактивные системы должны быть:

  • Отзывчивый
  • Устойчивый
  • Эластичный
  • Сообщение

Давайте посмотрим на взаимодействие этих характеристик:
реактивный-manifesto.gif

Мы видим, что системы, управляемые сообщениями, помогают повысить эластичность и эластичность характеристик, которые, в свою очередь, помогают сделать всю систему более отзывчивой. Создание отзывчивых систем с отличным пользовательским интерфейсом — конечная цель Reactive Manifesto.


Почему реактивное программирование?

Переход к реактивным системам может быть очень сложным и трудоемким делом.

Однако учтите следующее:

  • Современные системы должны быть надежными, отказоустойчивыми и гибкими.
  • Они развернуты в облачных кластерах с тысячами многоядерных процессоров.
  • Пользователи ожидают миллисекундного времени отклика и 100% времени безотказной работы.
  • Данные измеряются в петабайтах
  • Современные системы должны быть терпимы к сбоям и корректно реагировать на сбои, а также быстро реагировать, предоставляя пользователям эффективную интерактивную обратную связь.

Создание реактивных систем — отличное решение этих проблем. Так что сделайте себе одолжение и начните узнавать больше о реактивной функциональной парадигме и о том, как она может помочь системам вашей организации стать более перспективными и масштабируемыми!


Первоначально опубликовано на 22 июля 2018 года.

Похожие записи

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *