Какво е низ в Go? Каква е структурата и характеристиките му?
Golang
Разкажете за новата реализация на map в Go (Swiss Tables). Какви методи за разрешаване на колизии съществуват?
// Трябва да промените функцията ap така, че числото 6 да бъде включено в изходния слайс и слайсът да бъде сортиран // Важно - функцията ap не връща нищо package main import ( "fmt" ) func main() { v := []int{3, 4, 1, 2, 5} ap(v) fmt.Println(v) // очакваният резултат трябва да бъде - [3 4 1 2 5 6] } func ap(arr []int) { arr = append(arr, 10) arr[5] = 6 }
Какво е горутина? В какво се състои нейната лекота?
Какви методи за оптимизация на заявки към бази данни сте използвали? Какво гледахте в EXPLAIN ANALYZE и плана на заявката?
Кои типове данни в Go могат по подразбиране да приемат стойност nil?
Общ въпрос: готовност за интервю и източници на въпроси
Как протича преносът на данни чрез небуфериран канал? Има ли буфер?
Разкажете за вашия опит и технологичния стек
Какво е escape-анализът? Как определя къде ще бъде разположена променливата (стек или купчина)?
Откъде идва паметта за променливите? Какво е алокатор на памет?
Какво е превключването на контекста на горутините? Кой го изпълнява?
Какво блокира mutex в канал - горутина или област на паметта?
Какво се случва при затваряне на неинициализиран канал?
За какво е нужен канал при непаметена предаване, ако данните вървят от стек в стек? Каква роля изпълнява каналът?
Как може да се намали честотата на извикванията на garbage collector? Какви методи за оптимизация знаете?
Какви задачи изпълнявахте с Kafka? Как настроихте гаранциите за доставка (exactly-once)?
Как работи mutex в буфериран канал? Какво защитава?
Какъв тип многозадачност използва планировчикът на Go? Какви два типа многозадачност съществуват?
Какво е предимството на Swiss Tables в сравнение с старото реализиране на хеш таблица? Колко бита заема хеш кодът в старото и новото реализиране?