Введение в реактивное функциональное программирование
Первоначально опубликовано на:
вступление
В современной вычислительной среде больше пользователей с более тяжелыми моделями использования и гораздо более высокими ожиданиями от пользовательского опыта. Многие приложения начинают развертываться на высокораспределенных облачных серверах, что сопряжено со своими сложностями.
Чтобы решить эти проблемы, многие инженерные группы обращаются к реактивно-функциональной парадигме программирования.
Эта статья познакомит вас с Реактивное функциональное программирование.
Что такое реактивное программирование?
Интерактивные программы работают в своем собственном темпе и в основном имеют дело с коммуникацией, в то время как реактивные программы работают только в ответ на внешние требования и в основном имеют дело с > точной обработкой прерываний.
— Жерар Берри (директор по исследованиям INRIA)
Реактивное программирование — это парадигма декларативного программирования, которая предполагает создание асинхронных, неблокирующих и управляемых событиями приложений, использующих асинхронные потоки данных и легко масштабируемых.
- Поток может испускать три вещи:
- Ценность
- Ошибка
- Завершенный сигнал
Что такое асинхронные потоки данных?
Поток — это последовательность текущих событий, упорядоченных во времени. Примеры событий включают переменные, пользовательский ввод, свойства или события кликов.
Приведенная выше диаграмма называется мраморной диаграммой, и они обычно используются для объяснения различных аспектов реактивных потоков.
Реактивный манифест
Прежде чем вы начнете свое путешествие по созданию реактивных систем, вам следует ознакомиться с Reactive Manifesto. Реактивный манифест объясняет различные характеристики, которыми должны обладать реактивные системы.
Реактивные системы, как правило, слабо связаны, гибки и очень масштабируемы. Созданные правильным образом и дающие инженерным командам время для адаптации к новой парадигме, эти системы, как правило, легче разрабатывать и изменять по мере развития и роста систем.
Реактивные системы должны быть:
- Отзывчивый
- Устойчивый
- Эластичный
- Сообщение
Давайте посмотрим на взаимодействие этих характеристик:
Мы видим, что системы, управляемые сообщениями, помогают повысить эластичность и эластичность характеристик, которые, в свою очередь, помогают сделать всю систему более отзывчивой. Создание отзывчивых систем с отличным пользовательским интерфейсом — конечная цель Reactive Manifesto.
Почему реактивное программирование?
Переход к реактивным системам может быть очень сложным и трудоемким делом.
Однако учтите следующее:
- Современные системы должны быть надежными, отказоустойчивыми и гибкими.
- Они развернуты в облачных кластерах с тысячами многоядерных процессоров.
- Пользователи ожидают миллисекундного времени отклика и 100% времени безотказной работы.
- Данные измеряются в петабайтах
- Современные системы должны быть терпимы к сбоям и корректно реагировать на сбои, а также быстро реагировать, предоставляя пользователям эффективную интерактивную обратную связь.
Создание реактивных систем — отличное решение этих проблем. Так что сделайте себе одолжение и начните узнавать больше о реактивной функциональной парадигме и о том, как она может помочь системам вашей организации стать более перспективными и масштабируемыми!