Sobes.tech
Junior — Middle

Окуяларга негизделген жакындоонун иштөө принцибин түшүндүрө аласызбы жана ал программалоодо кантип колдонулат?

sobes.tech AI

AIден жооп

Окуялар негизделген ыкма (event-driven) программалар белгилүү окуяларга — абалдын өзгөрүшү, колдонуучунун аракеттери, билдирүүлөр жана башка — жооп берет дегенди билдирет. Кодду бир сызыкта аткаруу ордуна, логика ушул окуяларды иштетүү айланасында курулат.

Программалоодо бул көбүнчө окуяларды (emit) түзүү жана аларга жазылуу (subscribe/listen) аркылуу ишке ашырылат. Окуя болуп калганда, тиешелүү иштетүүчүлөр чакырылат.

Go тилинде бул ыкма көбүнчө каналдар (channels) жана goroutine'лер аркылуу ишке ашырылат. Мисалы, бир goroutine окуяларды каналга жиберсе, башкасы ошол каналды угуп, окуяларга жооп берет.

Мисал:

package main

import (
    "fmt"
    "time"
)

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

func eventConsumer(events <-chan string) {
    for event := range events {
        fmt.Println("Иштетүү", event)
    }
}

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

Бул ыкма программалардын ийкемдүүлүгүн жана масштабдуулугун жогорулатат, өзгөчө асинхрон маалымат иштетүү системдеринде.