--- aliases: - event-driven tags: - зрелость/🌱 date: - - 2024-03-19 zero-link: - "[[00 Архитектура ПО]]" parents: linked: --- Событийно-ориентированное программирование — это парадигма программирования, в которой [поток](Поток%20процесса%20ОС.md) программы определяется событиями, такими как действия пользователя, сообщения от других программ или внешних устройств. В этом подходе основное внимание уделяется обработке событий. Эта парадигма часто используется в разработке пользовательских интерфейсов, системах реального времени, а также в областях, где программы должны реагировать на внешние сигналы. Ключевыми элементами событийно-ориентированного программирования являются: 1. **События (Events):** Это действия или происшествия, которые происходят в системе или программе, например, нажатие кнопки на пользовательском интерфейсе или публикация кафка-сообщения сервисом в кафку 2. **Обработчики событий (Event Handlers):** Это части кода, которые "слушают" определенные события и выполняются, когда эти события происходят. Обработчик события может быть функцией или методом или отдельным сервисом, который вызывается в ответ на событие. 3. **Цикл обработки событий (Event Loop):** Во многих событийно-ориентированных системах существует цикл событий, который постоянно ожидает поступления новых событий и направляет их соответствующим обработчикам. 4. **Очередь событий (Event Queue):** В системах с высокой нагрузкой или когда события могут возникать одновременно, события могут быть помещены в очередь для последовательной обработки. **Какие задачи хорошо решает такая архитектура:** - Запросы для которых не нужна мгновенная реакция. Например, загрузка и парсинг большого XML файла. Реализуются часто с использованием [брокеров сообщений](Брокер%20сообщений.md).