Скала^р - 2
Актуальность: 1 кв 2026
Вопросы
Заголовок раздела «Вопросы»- Горутины и планировщик Go: базовые вопросы;
go/concurrency - Как Go работает с IO-bound и CPU-bound задачами?
go/stdlib-tooling - Как Go оборачивает системные вызовы?
linux-os/general - Что делает Sysmon?
devops/observability - Какие библиотеки для БД вы использовали?
sql/general - Есть ли полноценный ORM в Go?
sql/orm-drivers - Какие веб-фреймворки в Go вы использовали?
go/stdlib-tooling - В продакшене выявлен проблемный API-эндпоинт со временем ответа 200 мс. Опишите ваш пошаговый план диагностики и оптимизации;
devops/observability - Когда PostgreSQL не использует индекс?
sql/indexes - Как оптимизировать тяжелые JOIN/CTE?
sql/query-optimization - Когда нужно использовать materialized view?
sql/query-optimization - По каким метрикам решать, нужен ли кэш?
devops/observability - Как посчитать, ускорит ли Redis конкретный запрос?
nosql-cache/redis
Задача: Что выведет на экран? go/puzzles
Заголовок раздела «Задача: Что выведет на экран? go/puzzles»func foo() error { var err *os.PathError return err}
func main() { err := foo() if err != nil { fmt.Printf("NOT NIL: %v\n ", err)
return }
fmt.Printf("NIL: %v\n ", err)}Задача: В чем разница for и for range? Что выведет на экран? go/puzzles
Заголовок раздела «Задача: В чем разница for и for range? Что выведет на экран? go/puzzles»func main() { s := "Hi 😀" for i := 0; i < len(s); i++ { fmt.Printf("index %v: %c\n ", i, s[i]) }
fmt.Println()
for i, r := range s { fmt.Printf("index %v: %c\n ", i, r) }}Задача: Что выведет на экран? go/puzzles
Заголовок раздела «Задача: Что выведет на экран? go/puzzles»func modSlice(s []int) { for k, v := range s { s[k] = v * 2 }
s = append(s, 10)}
func main() { s := []int{1, 2, 3} modSlice(s) fmt.Println(s)}Задача: Что выведет на экран? go/puzzles
Заголовок раздела «Задача: Что выведет на экран? go/puzzles»func main() { i := 0 defer fmt.Println(i) i++
return}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»func main() { funcs := []func(){} i := 0 for i < 3 { funcs = append(funcs, func() { fmt.Println(i) })
i++ }
for _, f := range funcs { f() }}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»func main() { var wg sync.WaitGroup wg.Add(1)
go func() { defer wg.Done() wg.Add(1) fmt.Println("Nested ") }()
wg.Wait() fmt.Println("Done ")}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»func main() { ch := make(chan int, 2) ch <- 1 ch <- 2 close(ch)
fmt.Println(<-ch) fmt.Println(<-ch) fmt.Println(<-ch) fmt.Println(<-ch)}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»func main() { ch1 := make(chan int, 1) ch2 := make(chan int, 1)
ch1 <- 1 ch2 <- 2
for i := 0; i < 5; i++ { select { case v := <-ch1: fmt.Print(v) ch1 <- 1 case v := <-ch2: fmt.Print(v) ch2 <- 2 } } fmt.Println()}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»func main() { m := make(map[int]int) var wg sync.WaitGroup
for i := 0; i < 1000; i++ { wg.Add(1) go func(n int) { defer wg.Done() for j := 0; j < 100; j++ { m[n*100+j] = n } }(i) }
wg.Wait() fmt.Printf("Result: %d items\n ", len(m))}Задача: Что выведет? go/puzzles
Заголовок раздела «Задача: Что выведет? go/puzzles»type Counter struct { sync.Mutex n int}
func (c Counter) Inc() { c.Lock() c.n++ c.Unlock()}
func main() { c := Counter{} c.Inc() c.Inc() fmt.Println(c.n)}