Sobes.tech
Junior — Middle

Pode explicar o princípio de funcionamento da abordagem baseada em eventos e como ela é utilizada na programação?

sobes.tech IA

Resposta da IA

A abordagem baseada em eventos (event-driven) pressupõe que o programa reage a determinados eventos: mudanças de estado, ações do utilizador, mensagens, etc. Em vez de executar o código sequencialmente, a lógica é construída em torno do processamento desses eventos.

Em programação, isto é implementado através da geração de eventos (emit) e da subscrição a eles (subscribe/listen). Quando um evento ocorre, os manipuladores correspondentes são chamados.

Em Go, esta abordagem é frequentemente implementada usando canais (channels) e goroutines. Por exemplo, uma goroutine pode enviar eventos para um canal, e outra pode escutar esse canal e reagir aos eventos.

Exemplo:

package main

import (
    "fmt"
    "time"
)

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

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

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

Este método aumenta a flexibilidade e escalabilidade das aplicações, especialmente em sistemas com processamento assíncrono de dados.