func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }
Golang
Как се предава slice към функция в език за програмиране?
Разкажи ми за дизайн патърните. Какво е double-checked locking (двойно проверка на заключването) и за какво се използва?
Обяснете защо и коя (относно изхода на кода)
Възможна ли е ситуация на Неповторимо четене при използване на нивото на изолация Read Committed?
Какво ще се покаже при всяко принтиране? func fn(a []int) { a[2] = 5 a = append(a, 6) fmt.Println(a) // a = append(a, 7) a[0] = 5 fmt.Println(a) // } func main() { a := make([]int, 0, 5) for i := 0; i < 4; i++ { a = append(a, i) } fn(a[:3]) fmt.Println(a) // }
Разкажи ми как работи Redis, какво е?
На 7-мия ред се прави извод, че вътрешният масив ще бъде препълнен и ще бъде създаден нов. Защо си решил така?
Разкажи ми как работи планировчикът на горутините в Go (GMP).
Имало ли е грешки / проблеми на работното място?
Разкажи какво е map в Go и как го разбираш?
Какво ще се случи с лимитатора за скорост Token Bucket в сценария: 1 заявка в началото на секундата, 99 в края, и след това още 100 в следващата секунда?
Разкажи за използването на събития (подход, базиран на събития) във вашия пример
// Какво е лошото в този код? Как да го подобрим? func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }
Какви задачи ти харесват? Какво търсиш за себе си?
Проектирайте ограничител на скоростта за външен API с лимит 100 заявки в секунда/минута
Кой проектира архитектурата на проекта — ти като лидер на функции, заедно с екипа, или като лидер на екипа?
Използваш ли Golang?
Какво ще се покаже във всеки принт? func fn(a []int) { a[2] = 5 a = append(a, 6) fmt.Println(a) // a = append(a, 7) a[0] = 5 fmt.Println(a) // } func main() { a := make([]int, 0, 5) for i := 0; i < 4; i++ { a = append(a, i) } fn(a[:3]) fmt.Println(a) // }
Как се решаваха?