РЕАКТИВНОЕ ПРОГРАММИРОВАНИЕ КАК ЭВОЛЮЦИЯ АРХИТЕКТУРНЫХ КОМПРОМИССОВ В УПРАВЛЕНИИ ИЗМЕНЕНИЯМИ
Аннотация и ключевые слова
Аннотация:
Представлено исследование эволюции моделей реактивного программирования от теоретических основ функционального реактивного программирования до современных практических реализаций в библиотеках реактивных потоков и 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).

Рецензии
1. рецензия
Авторы: Ермаков Сергей Геннадьевич

Войти или Создать
* Забыли пароль?