Что такое реактивное программирование и чем оно отличается от процедурного программирования?
Реактивное программирование — это парадигма, в которой программа реагирует на изменения в потоках данных и событиях, автоматически распространяя эти изменения через систему.
Аналогия из жизни: процедурное программирование — это когда вы вручную проверяете почтовый ящик каждый час. Реактивное — когда почтальон сам звонит в дверь, и вы реагируете на звонок.
Процедурное программирование строит программу как последовательность инструкций, выполняемых одна за другой. Данные представлены в виде единственного значения в переменной.
Реактивное программирование фокусируется на непрерывных потоках данных, на которые могут подписаться несколько наблюдателей. Оно позволяет создавать гибкие и эффективные системы, способные адаптироваться к изменениям без необходимости явного управления асинхронными задачами.
| Критерий | Процедурное | Реактивное |
|---|---|---|
| Модель данных | Единственное значение в переменной | Непрерывный поток данных |
| Управление | Явное, последовательное | Автоматическая реакция на события |
| Асинхронность | Требует явного управления | Встроена в парадигму |
| Подписка | Нет | Множественные наблюдатели |
На собеседовании: интервьюер хочет услышать понимание ключевого отличия: процедурный код pull-based (вы запрашиваете данные), реактивный — push-based (данные приходят к вам). Частая ошибка — путать реактивное программирование с асинхронным; реактивность шире и включает концепции потоков, backpressure и composability.