Вернуться в видеотекуСобеседование на Golang 260к
Техническое собеседование по Golang с двумя практическими задачами и серией вопросов по языку, конкурентности, SQL, архитектуре и тестированию.
- Направление
- Backend
- Формат
- Техническое собеседование
- Длительность
- 40 мин
Коротко о видео
В видео показан разбор технического собеседования по Go: кандидат решает задачу на разворот слайса in-place, затем задачу с producer/consumer и каналом. Интервьюер уточняющими вопросами проверяет понимание слайсов, map, интерфейсов, goroutine, синхронизации и причин блокировки каналов. Во второй части обсуждаются диагностика медленного API, индексы и нормализация БД, CTE, миграции, DDD и подходы к тестированию.
Затронутые темы
Что взять на заметку
- Для разворота слайса без дополнительного массива достаточно менять элементы по симметричным индексам до середины; не нужен отдельный слайс с длиной.
- Слайс в Go содержит указатель на начало своего участка backing array, длину и capacity; слайсы первой и второй половины массива имеют разные начальные позиции.
- Порядок обхода Go map нельзя использовать как контракт: он не гарантирован даже при неизменной map.
- В задаче producer/consumer нужно учитывать main goroutine, завершение работников и блокировку отправки: буфер канала лишь откладывает проблему, если из канала никто не читает.
- При внезапном замедлении endpoint сначала стоит подтвердить проблему по логам и метрикам, затем проверять нагрузку CPU/RAM/диска, БД и план/индексы запросов.
- CTE упрощает основной SQL-запрос промежуточным результатом, а рекурсивный CTE подходит, например, для обхода иерархии сотрудников.
- Тест функции записи в БД требует заранее определить, проверяется ли бизнес-логика с подменой зависимости или реальная интеграция с базой.