Go: вопросы на собеседовании
Вопросы и ответы по Go: подготовка, примеры и типичные ошибки.
Проверьте себя по Go: 5 вопросов, ~10 минут
Вопросов: 43. Частые идут первыми, сложные возвращаются на повторение.
- Что такое channels в Go и в чём разница между буферизованными и небуферизованными channels?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое пакет
contextи почему он важен для управления goroutine?Middle· спрашивают почти всегда - Для каких задач Go (Golang) является сильным выбором, а где лучше честно выбрать другой язык?Middle· спрашивают почти всегда
- Что такое goroutine? Чем она отличается от потока ОС?Junior· спрашивают почти всегда
- Как работает обработка ошибок в Go? Каков идиоматический способ работы с ошибками?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое interfaces в Go? Как работает неявная реализация интерфейсов?Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Каковы ключевые принципы проектирования Go и для решения каких задач он был создан?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Что такое map в Go? Безопасен ли он для конкурентного использования?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как Go управляет пакетами и модулями? Что такое
go.mod?Middle· спрашивают почти всегда - Что такое
race detectorв Go и как его использовать?Middle· спрашивают почти всегда - Что происходит при добавлении элементов за пределы ёмкости slice?Middle· спрашивают почти всегда
- Что такое slice в Go? Чем он отличается от массива? Объясните внутреннюю структуру (указатель, длина, ёмкость).Middle· спрашивают почти всегда· полный разбор — Jobs/Boost
- Как писать unit-тесты в Go? Что такое пакет
testing?Junior· спрашивают почти всегда· полный разбор — Jobs/Boost - В чём разница между взаимодействием goroutine через channels и разделяемой памятью с mutex?Senior· полный разбор — Jobs/Boost
- Что такое оператор
deferи в каком порядке выполняются отложенные функции?Junior· полный разбор — Jobs/Boost - Как реализовать dependency injection в Go без фреймворка?Senior· полный разбор — Jobs/Boost
- Что такое generics в Go (появились в Go 1.18) и как использовать type constraints?Middle· полный разбор — Jobs/Boost
- Как сравнить Go (Golang) с ближайшими альтернативами по производительности, поддерживаемости, найму и экосистеме?Middle· полный разбор — Jobs/Boost
- В чём разница между
go build,go runиgo install?Junior· полный разбор — Jobs/Boost - Как понять, что команда использует Go (Golang) идиоматично, а не переносит привычки из другого языка?Senior· полный разбор — Jobs/Boost
- Представьте, сервис на Go (Golang) стал медленнее или нестабильнее после релиза. Какие language/runtime-specific причины вы проверите?Senior· полный разбор — Jobs/Boost
- Как корректно делать graceful shutdown HTTP-сервера с
context?Middle· полный разбор — Jobs/Boost - Какие ошибки делают разработчики, переходящие на Go (Golang) с другого языка или стека?Middle· полный разбор — Jobs/Boost
- Какие особенности runtime, type system или memory model Go (Golang) реально влияют на архитектуру приложения?Middle· полный разбор — Jobs/Boost
- Какие production-риски чаще всего возникают в проектах на Go (Golang): производительность, зависимости, конкурентность, деплой или observability?Senior
- Как предотвратить утечку goroutine и как её обнаружить?Senior· полный разбор — Jobs/Boost
- В чём разница между
make()иnew()в Go?Junior - В чём разница между
sync.Mutexиsync.RWMutex?Middle· полный разбор — Jobs/Boost - Как работает планировщик Go? Что такое модель многопоточности M:N (GOMAXPROCS)?Senior· полный разбор — Jobs/Boost
- Что такое оператор
selectи как он работает с несколькими channels?Middle· полный разбор — Jobs/Boost - Что такое table-driven testing и почему это идиоматично для Go?Middle
- В чём разница между value receivers и pointer receivers у методов?Middle· полный разбор — Jobs/Boost
- Что такое
WaitGroupи как он используется?Junior - Какие распространённые паттерны применяются для структурирования Go-приложения (например, Clean Architecture, hexagonal)?Senior
- Как Go управляет памятью? Каков алгоритм сборщика мусора?Senior
- Что такое
errors.Is,errors.Asи wrapping через%w?Middle· полный разбор — Jobs/Boost - Что такое escape analysis и как она влияет на allocations?Middle· полный разбор — Jobs/Boost
- Расскажите о случае, когда особенности Go (Golang) повлияли на архитектурное решение, производительность или сопровождение проекта.Middle· полный разбор — Jobs/Boost
- Как использовать
pprofиruntime/traceдля диагностики CPU, memory и goroutine leaks?Middle - Какие версии, возможности или изменения экосистемы Go (Golang) важно учитывать на собеседованиях в 2026 году?Middle
- В чём разница между
panicиrecover?Middle· полный разбор — Jobs/Boost - Что такое функция
init()и когда она вызывается?Middle - Что такое
sync.Onceи для чего он используется?Middle· полный разбор — Jobs/Boost