Sobes.tech

func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }

199

Разкажи ми за дизайн патърните. Какво е double-checked locking (двойно проверка на заключването) и за какво се използва?

190

Възможна ли е ситуация на Неповторимо четене при използване на нивото на изолация Read Committed?

181

Какво ще се покаже при всяко принтиране? 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) // }

179

На 7-мия ред се прави извод, че вътрешният масив ще бъде препълнен и ще бъде създаден нов. Защо си решил така?

175

Разкажи ми как работи планировчикът на горутините в Go (GMP).

174

Какво ще се случи с лимитатора за скорост Token Bucket в сценария: 1 заявка в началото на секундата, 99 в края, и след това още 100 в следващата секунда?

170

Разкажи за използването на събития (подход, базиран на събития) във вашия пример

169

// Какво е лошото в този код? Как да го подобрим? func fn() { str := "" for i := 0; i < 100000; i++ { str += fmt.Sprintf("%d", i) } fmt.Println(str) }

169

Проектирайте ограничител на скоростта за външен API с лимит 100 заявки в секунда/минута

166

Кой проектира архитектурата на проекта — ти като лидер на функции, заедно с екипа, или като лидер на екипа?

159

Какво ще се покаже във всеки принт? 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) // }

153
/4