Sobes.tech
Back to questions
Middle+
3

What pipeline?

Companies where asked
МВидеоМВидео

Answer from AI

sobes.tech AI

Пайплайн (pipeline) — это последовательность шагов обработки данных или задач, где выход одного шага служит входом для следующего. В программировании и системах обработки данных пайплайны помогают структурировать сложные процессы и обеспечивают поток данных.

В Go часто используют паттерн pipeline для организации конвейера обработки с помощью горутин и каналов. Например, данные проходят через несколько этапов обработки параллельно, что повышает производительность и читаемость кода.

Пример простого pipeline на Go:

func gen(nums ...int) <-chan int {
    out := make(chan int)
    go func() {
        for _, n := range nums {
            out <- n
        }
        close(out)
    }()
    return out
}

func sq(in <-chan int) <-chan int {
    out := make(chan int)
    go func() {
        for n := range in {
            out <- n * n
        }
        close(out)
    }()
    return out
}

func main() {
    c := gen(2, 3, 4)
    out := sq(c)
    for n := range out {
        fmt.Println(n)
    }
}

Здесь данные проходят через два этапа: генерация чисел и возведение в квадрат.