digital-garden/_inbox/Событийно-ориентированное программирование.md

26 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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).