Sobes.tech
Junior — Middle

Voʻe tushuntirib bering, voqealarga asoslangan yondashuv qanday ishlash prinsipi va u dasturlashda qanday qoʻllaniladi?

sobes.tech AI

AIdan javob

Voqeaga asoslangan yondashuv (event-driven) dastur muayyan voqealarga — holat o'zgarishlari, foydalanuvchi harakatlari, xabarlar va boshqalarga — javob berishini anglatadi. Kodni ketma-ket bajarish o'rniga, mantiq bu voqealarni qayta ishlash atrofida quriladi.

Dasturlashda bu odatda voqealarni (emit) yaratish va ularga obuna bo'lish (subscribe/listen) orqali amalga oshiriladi. Voqea yuz berganda, mos keladigan handlerlar chaqiriladi.

Go tilida, bu yondashuv ko'pincha kanallar (channels) va goroutinlar yordamida amalga oshiriladi. Masalan, bir goroutin voqealarni kanalga yuborishi mumkin, boshqasi esa bu kanalni tinglab, voqealarga javob beradi.

Misol:

package main

import (
    "fmt"
    "time"
)

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

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

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

Bu yondashuv, ayniqsa, ma'lumotlarni asinxron tarzda qayta ishlash tizimlarida, ilovalar moslashuvchanligi va kengaytuvchanligini oshiradi.