Golang
Kaip galima sustabdyti gorutinos vykdymą?
Kaip veikia profilisavimas?
Kas dabar tave motyvuoja ieškoti naujo darbo?
Klausimas 1: Ką parodys kodas su slices? (append, talpa, bendras pagrindinis masyvas)
Pasakokite apie duomenų bazių shardinimo strategijas: kada pradėti shardinti ir pagal kokius kriterijus pasirinkti shardavimo raktą?
Kodėl pasirinkote Kafka vietoj RabbitMQ ar duomenų bazės? Koks buvo prasmės?
Ar turite patirties dirbant su Docker? Ar turite patirties rašant Dockerfile patys?
Kas yra SOLID? Išvardykite principus.
Papaskinkite apie komandą ir valdymo procesus (sprintai, kanban ir kt.)
Kiek turite bendros patirties IT srityje komercinėje srityje?
Kas yra nil sąsaja? Kas yra po kapotu?
Kiek laiko reikia atidirbti?
Kaip diegiate: Kubernetes, bare metal ar debesų?
// Klausimas 3 // Aprašykite, kokį uždavinį sprendžia šis kodas // Kokios problemos yra šiame sprendime? // Kaip perrašytumėte šį kodą? var c int var mu sync.RWMutex type Trace struct { // Kai kurie laukai čia } type Sender interface { Send(Trace) } func Do(sender Sender, tr Trace) { mu.Lock() defer mu.Unlock() c++ if c == 100 { go func() { sender.Send(tr) }() c = 0 } }
Kas nutiks, jei kaip argumentą funkcijai perduosite slice ir jį viduje pakeisite?
Jei pridėsime daug vartotojų, bet Kafka vėlavimas vis dar neišnyksta, ką tai rodo?
Kokius įrankius naudojate našumo vertinimui ir profilavimui Go programos kūrimo metu?
Kaip elgtis, kai visi 5 goroutine vienu metu mato tuščią talpyklą ir eina į duomenų bazę (cache stampede)?
Kodėl patogu, kad shardų skaičius būtų dviejų laipsnis, o ne, pavyzdžiui, trys?
Kokias būtent technologines pranašumus ir ekosistemas turi Go, galbūt unikalius, kuriuos tik Go atitinka, galėtumėte paminėti?