Sobes.tech
Junior — Middle

Можете ли да објасните принцип рада приступа заснованог на догађајима и како се он користи у програмирању?

sobes.tech АИ

Одговор од АИ

Pristup zasnovan na događajima (event-driven) podrazumeva da program reaguje na određene događaje: promene stanja, akcije korisnika, poruke itd. Umesto sekvencijalnog izvršavanja koda, logika se gradi oko obrade ovih događaja.

U programiranju se to često realizuje generisanjem događaja (emit) i pretplatom na njih (subscribe/listen). Kada se dogodi događaj, pozivaju se odgovarajući handleri.

U Go jeziku, ovaj pristup se često implementira pomoću kanala (channels) i gorutina. Na primer, jedna gorutina može slati događaje u kanal, dok druga sluša taj kanal i reaguje na događaje.

Primer:

package main

import (
    "fmt"
    "time"
)

func eventProducer(events chan<- string) {
    for i := 1; i <= 5; i++ {
        events <- fmt.Sprintf("Događaj %d", i)
        time.Sleep(time.Second)
    }
    close(events)
}

func eventConsumer(events <-chan string) {
    for event := range events {
        fmt.Println("Obrada", event)
    }
}

func main() {
    events := make(chan string)
    go eventProducer(events)
    eventConsumer(events)
}

Ovaj pristup povećava fleksibilnost i skalabilnost aplikacija, posebno u sistemima sa asinhronim obradom podataka.