Event-Driven Programming (česky událostmi řízené programování) je programovací paradigma, ve kterém je tok programu řízen událostmi (eventy). Program nevykonává pouze předem danou posloupnost příkazů, ale čeká na události a reaguje na ně pomocí definovaných funkcí nebo metod.
Tento přístup je široce využíván při vývoji webových, desktopových, mobilních i serverových aplikací.
V událostmi řízeném programování aplikace neustále naslouchá událostem, které mohou vznikat z různých zdrojů.
Typický průběh:
Vznik události ↓ Event Queue (fronta událostí) ↓ Event Loop (zpracování událostí) ↓ Event Handler ↓ Provedení akce
Událost může být vyvolána uživatelem, systémem, hardwarem nebo jinou aplikací.
Kliknutí myší. Stisknutí klávesy. Dotyk obrazovky. Přetažení objektu.
Spuštění aplikace. Ukončení programu. Změna velikosti okna. Změna síťového připojení.
Vypršení časovače. Naplánovaná úloha. Periodické spuštění procesu.
Přijetí dat ze serveru. Navázání spojení. Odpojení klienta.
Event Handler je funkce, která se spustí při výskytu konkrétní události.
Příklad v JavaScriptu:
document .getElementById("button") .addEventListener("click", function() { alert("Tlačítko bylo stisknuto."); });
Po kliknutí na tlačítko dojde ke spuštění příslušné funkce.
Mnoho moderních prostředí používá mechanismus nazývaný Event Loop.
Jeho úkolem je:
sledovat frontu událostí, vybírat čekající události, předávat je odpovídajícím obsluhám, zajišťovat plynulý běh aplikace.
Event Loop je klíčovou součástí například JavaScriptu nebo Node.js.
Vysoká interaktivita aplikací. Efektivní využití systémových prostředků. Dobrá podpora asynchronních operací. Přirozené zpracování uživatelských akcí. Vhodné pro grafická rozhraní a síťové aplikace.
Složitější ladění programu. Obtížnější sledování toku vykonávání. Riziko vzniku tzv. callback hell. Náročnější správa větších aplikací.
Webové aplikace. Desktopové aplikace. Mobilní aplikace. Herní vývoj. Serverové aplikace. Internet věcí (IoT). Síťové služby.
JavaScript Node.js React Angular Vue.js Qt Electron
Event-Driven Programming je programovací paradigma založené na zpracování událostí. Aplikace reaguje na akce uživatele, systémové změny nebo příchozí data prostřednictvím obslužných funkcí. Tento přístup tvoří základ většiny moderních grafických a webových aplikací a umožňuje efektivní práci s asynchronními operacemi.