Obsah
Event-Driven Programming
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í.
Princip fungování
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í.
Zdroje událostí
Uživatelské události
Kliknutí myší. Stisknutí klávesy. Dotyk obrazovky. Přetažení objektu.
Systémové události
Spuštění aplikace. Ukončení programu. Změna velikosti okna. Změna síťového připojení.
Časové události
Vypršení časovače. Naplánovaná úloha. Periodické spuštění procesu.
Síťové události
Přijetí dat ze serveru. Navázání spojení. Odpojení klienta.
Event Handler
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.
Event Loop
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.
Výhody
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.
Nevýhody
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í.
Oblasti použití
Webové aplikace. Desktopové aplikace. Mobilní aplikace. Herní vývoj. Serverové aplikace. Internet věcí (IoT). Síťové služby.
Příklady technologií
JavaScript Node.js React Angular Vue.js Qt Electron
Související pojmy
Shrnutí
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.
