Golang
Как да не ходите изобщо на услуга, която със сигурност ще се срути или ще бъде недостъпна?
func fanin[T всякакъв](chs ...<-chan T) chan T { out := make(chan T) wg := sync.WaitGroup{} for _, ch := range chs { wg.Add(1) go func(c <-chan T) { defer wg.Done() for v := range c { out <- v } }(ch) } go func() { wg.Wait() close(out) }() return out } func main() { ch1 := make(chan int, 5) ch2 := make(chan int, 5) for i := 1; i <= 5; i++ { ch1 <- i ch2 <- i * 2 } close(ch1) close(ch2) fmt.Println(fanin(ch1, ch2)) }
Как могат контейнерите да взаимодействат помежду си?
Винаги ли сте работили като аутсорсинг/аутстаф?
Написаха ли разработчиците някакви тестове?
А след това какво правите с тези данни?
Защо бихте избрали канал вместо WaitGroup/errgroup? Защо errgroup е по-лош?
Защо възникна необходимостта от намаляване на алокациите – беше това искане от бизнеса или собствена инициатива на екипа?
С какви детайли/технологии сте работили?
Какви инструменти използваш за оценка на производителността и профилиране по време на разработката на приложения?
Колко търговски опит имаш с Go?
Как получаваха задачите? Къде водеха задачите и статусите?
Обяснете какво е полето inventory_code (код) в таблицата с книги, какво е това?
В езика Go има горутини — леки потоци. Можеш ли да обясниш как разбираш кога трябва да използваш горутина и кога не?
Разкажи ми за последния ти проект.
Добавете странициране към заявката SELECT от таблицата books (50 записа на страница).
Колко различни варианта съществуват при хвърляне на две неразличими зарчета?
Пренапишете заявката за странициране, използвайки подхода с курсор (клиентът предава последния известен ID).
Разкажи за себе си, за опита си, с какво се занимаваше напоследък.
Как се регулираше броят на инстансите? Кой определяше изискванията към ресурсите в Kubernetes?