Junior — Middle
Můžete vysvětlit princip fungování přístupu založeného na událostech a jak se používá v programování?
sobes.tech AI
Odpověď od AI
Přístup založený na událostech (event-driven) předpokládá, že program reaguje na určité události: změny stavu, akce uživatele, zprávy atd. Místo sekvenčního provádění kódu je logika postavena kolem zpracování těchto událostí.
V programování se to často realizuje pomocí generování událostí (emit) a jejich odběru (subscribe/listen). Když dojde k události, jsou volány odpovídající obslužné rutiny.
V jazyce Go se tento přístup často realizuje pomocí kanálů (channels) a gorutin. Například jedna gorutina může posílat události do kanálu, zatímco jiná jej sleduje a reaguje na události.
Příklad:
package main
import (
"fmt"
"time"
)
func eventProducer(events chan<- string) {
for i := 1; i <= 5; i++ {
events <- fmt.Sprintf("Událost %d", i)
time.Sleep(time.Second)
}
close(events)
}
func eventConsumer(events <-chan string) {
for event := range events {
fmt.Println("Zpracování", event)
}
}
func main() {
events := make(chan string)
go eventProducer(events)
eventConsumer(events)
}
Takový přístup zvyšuje flexibilitu a škálovatelnost aplikací, zejména v systémech s asynchronním zpracováním dat.