Gymterview
junior

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

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

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

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

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

Критерий Процедурное Реактивное
Модель данных Единственное значение в переменной Непрерывный поток данных
Управление Явное, последовательное Автоматическая реакция на события
Асинхронность Требует явного управления Встроена в парадигму
Подписка Нет Множественные наблюдатели

На собеседовании: интервьюер хочет услышать понимание ключевого отличия: процедурный код pull-based (вы запрашиваете данные), реактивный — push-based (данные приходят к вам). Частая ошибка — путать реактивное программирование с асинхронным; реактивность шире и включает концепции потоков, backpressure и composability.