Чагода, Вологодская область, Россия
Россия
Представлено исследование эволюции моделей реактивного программирования от теоретических основ функционального реактивного программирования до современных практических реализаций в библиотеках реактивных потоков и UI-фреймворках. Цель: систематизировать подходы к управлению зависимостями и распространению изменений в программных системах. Методы: сравнительный анализ архитектурных решений в FRP, библиотеках реактивных потоков и UI-фреймворках. Результаты: показано, что реактивные модели не устраняют сложность управления изменениями во времени, а перераспределяют ее между кодом разработчика, механизмами выполнения и инструментами разработки. Выявлены ключевые различия между push-моделью, основанной на явном распространении событий и управлении подписками, и pull-моделью, использующей автоматическое отслеживание зависимостей. Практическая значимость: заключается в уточнении архитектурных компромиссов различных моделей реактивности при разработке пользовательских интерфейсов и серверных систем обработки данных
реактивное программирование, функциональное реактивное программирование, push-модель, pull-модель, управление зависимостями, архитектурные паттерны
1. Moseley B., Marks P. Out of the Tar Pit // Proceedings of the BCS Software Practice Advancement Conference (SPA ‘2006) (Bedfordshire, England, 26–29 March 2006). 66 p. URL: http://curtclifton.net/papers/MoseleyMarks06a.pdf (дата обращения: 26.04.2026).
2. Java Concurrency на практике = Java Concurrency in Practice / Б. Гетц [и др.]; пер. с англ. А. Логунова. СПб.: Питер, 2026. 464 с.
3. Meijer E. The Curse of the Excluded Middle // Communications of the ACM. 2014. Vol. 57, iss. 6. Pp. 50–55. DOI:https://doi.org/10.1145/2605176
4. Elliott C., Hudak P. Functional Reactive Animation // ACM SIGPLAN Notices. 1997. Vol. 32, no. 8. Pp. 263–273. DOI:https://doi.org/10.1145/258948.258973
5. Salvaneschi G., Mezini M. Reactive Behavior in Object-Oriented Applications: An Analysis and a Research Roadmap // Proceedings of the 12th Annual International Conference on Aspect-Oriented Software Development (AOSD ‘13) (Fukuoka, Japan, 24–29 March 2013) / H. Masuhara [et al.] (eds). New York: Association for Computing Machinery, 2013. Pp. 37–48. DOI:https://doi.org/10.1145/2451436.2451442
6. Wan Z., Taha W., Hudak P. Real-Time FRP // ACM SIGPLAN Notices. 2001. Vol. 36, no. 10. Pp. 146–156. DOI:https://doi.org/10.1145/507635.507654
7. Czaplicki E., Chong S. Asynchronous Functional Reactive Programming for GUIs // ACM SIGPLAN Notices. 2013. Vol. 48, no. 9. Pp. 411–422. DOI:https://doi.org/10.1145/2462156.2462161
8. Нуркевич Т., Кристенсен Б. Реактивное программирование с применением RxJava. Разработка асинхронных событийно-ориентированных приложений = Reactive Programming with RxJava: Creating Asynchronous, Eventbased Application / пер. с англ. А. А. Слинкина. М.: ДМК Пресс, 2017. 358 с.
9. ReactiveX Observable Documentation. URL: http://reactivex.io/documentation/observable.html (дата обращения: 25.04.2026).
10. RxJS API Docs. URL: http://rxjs.dev/guide/overview (дата обращения: 25.04.2026).
11. Project Reactor Documentation. URL: http://projectreactor.io/docs (дата обращения: 25.04.2026).
12. Кун Р., Ханафи Б., Аллен Дж. Реактивные шаблоны проектирования = Reactive Design Patterns / пер. с англ. С. Черникова. СПб.: Питер, 2018. 416 с.
13. Elliott C. M. Push-Pull Functional Reactive Programming // Haskell 2009: Proceedings of the Second ACM SIGPLAN Symposium on Haskell (Edinburgh, Scotland, 03 September 2009) / S. Weirich (ed.). New York: Associationfor Computing Machinery, 2009. Pp. 25–36. DOI:https://doi.org/10.1145/1596638.1596643
14. Кумар Т. React. К вершинам мастерства: создание быстрых, производительных и интуитивно понятных веб-приложений = Fluent React: Build Fast, Performant, and Intuitive Web Applications / пер. с англ. Астана: АЛИСТ, 2025. 368 с.
15. React DOM: React Reference Overview. URL: http://react.dev/reference/react (дата обращения: 26.04.2026).
16. What is Angular? URL: http://angular.dev/overview (дата обращения: 26.04.2026).
17. Angular Signals: In-depth Guides. URL: http://angular.dev/guide/signals (дата обращения: 26.04.2026).
18. Solid Overview. URL: http://docs.solidjs.com (дата обращения: 26.04.2026).
19. Signals: Preact Guide. URL: http://preactjs.com/guide/v10/signals (дата обращения: 26.04.2026).
20. Svelte Overview: Svelte Docs. URL: http://svelte.dev/docs/svelte/overview (дата обращения: 26.04.2026).
21. Wingerath W., Ritter N., Gessert F. Real-Time and Stream Data Management: Push-Based Data in Research and Practice. Cham: Springer, 2019. 86 p. DOI:https://doi.org/10.1007/978-3-030-10555-6
22. Changefeeds in RethinkDB. URL: http://rethinkdb.com/docs/changefeeds/python (дата обращения: 26.04.2026).
23. Kafka Streams: Apache Kafka Docs. URL: http://kafka.apache.org/43/streams (дата обращения: 26.04.2026).
24. Apache Flink Documentation. URL: http://nightlies.apache.org/flink/flink-docs-stable (дата обращения: 26.04.2026).



