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)) }
Как могат контейнерите да взаимодействат помежду си?
Можеше ли да се променят лимитите и правилата по време на изпълнение? Имаше ли потребителски интерфейс за това?
Винаги ли сте работили като аутсорсинг/аутстаф?
А след това какво правите с тези данни?
Какви са горутините в Go и как се различават от системните нишки?
Защо бихте избрали канал вместо WaitGroup/errgroup? Защо errgroup е по-лош?
Какво търсиш сега за себе си, в коя посока искаш да се развиваш?
Защо възникна необходимостта от намаляване на алокациите – беше това искане от бизнеса или собствена инициатива на екипа?
Имаш ли военен билет на ръка?
Колко търговски опит имаш с Go?
Искате пълно работно време от разстояние или сте готови да разгледате и варианти с офис?
Как получаваха задачите? Къде водеха задачите и статусите?
Redis ли беше във всички трите дата центъра?
Обяснете какво е полето inventory_code (код) в таблицата с книги, какво е това?
В езика Go има горутини — леки потоци. Можеш ли да обясниш как разбираш кога трябва да използваш горутина и кога не?
Разкажи ми за последния ти проект.
Защо използвахте sync.Map вместо обикновена карта с Mutex?