Golang
Algoritmická sekcia: dve úlohy na úrovni Medium alebo vyššej na LeetCode. Trvanie — 1,5 hodiny na obe úlohy.
Služba spracováva požiadavku, začína niečo robiť, skúša to znova, a v tom momente sa pod reštartuje. Čo sa stane?
Povedz mi o modeli GMP v Go. Ako fungujú fronty, čo je handoff, work stealing, netpoller?
""" Miesta v kine sú usporiadané v jednom rade. Nový divák si vyberá miesto, aby sedel čo najďalej od ostatných divákov v rade. To znamená, že vzdialenosť od tohto miesta, kam sadne, k najbližšiemu divákovi, musí byť maximálna. Je zaručené, že v rade sú vždy voľné miesta a že už sedí aspoň jeden divák. Napíšte funkciu, ktorá na základe daného radu miest (pole núl a jednotiek) vráti vzdialenosť (počet medzier medzi sedadlami) od zvoleného miesta k najbližšiemu divákovi. [1, 0, 0, 0, 1] -> 2 [1, 0, 1, 0, 0, 1, 0, 0, 1] -> 2 [1, 0, 1, 0] -> 1 [0, 0, 0, 1] [1, 0, 0, 0] place = ((right - left) / 2) """ func maxPlaces(arr []int) int { }
Koľko mikroservisov máte v Go a ako často sa vyskytujú úlohy, ktoré zahŕňajú dva mikroservisy?
Koľko približne mikroservisov bolo v systéme?
Čo je zámková konkurencia?
Aké sú výhody a nevýhody pgx?
Čo je to proces a vlákno v OS (Linux)?
S akými metodológiami vývoja ste pracovali? Ktoré sú najpohodlnejšie?
Pracujete momentálne na základe pracovnej zmluvy alebo ako SZČO/živnostník?
V ktorom smere sa chceš v budúcnosti rozvíjať – technicky alebo manažérsky?
Vytvorte procedúru a z nej urobte SELECT.
Aká je časová a pamäťová zložitosť (Big O) tohto algoritmu?
Ako dlho sa venuješ vývoju v Go?
Aké sú typické príčiny únikov goroutines v produkčných systémoch a ako ovplyvňujú správanie služby počas behu?
Čím sa líši funkcia od metódy v Go? Aký je technický rozdiel z hľadiska práce s pamäťou?
Čo program vypíše? package main import "fmt" func main() { original := []int{1, 2, 3} updated := append(original, 4) original[0] = 100 fmt.Println(original, updated) } [100 2 3] [1 2 3 4] [100 2 3] [100 2 3 4] [1 2 3] [1 2 3 4]
func appendSlice(sl []int, val int) { sl = append(sl, val) } func mutateSlice(sl []int, idx, val int) { sl[idx] = val } package main import "fmt" type Person struct { Name string } func changeName(person *Person) { person = &Person{ Name: "Alice", } } func main() { person := &Person{ Name: "Bob", } fmt.Println(person.Name) // changeName(person) fmt.Println(person.Name) // }
Koľko back-endov bolo v tíme [spoločnosť]?