Вернуться в видеотеку

Собеседование на Golang 260к

Техническое собеседование по Golang с двумя практическими задачами и серией вопросов по языку, конкурентности, SQL, архитектуре и тестированию.

Источник: Тихон Галактионов

Открыть на YouTube

Таймлайн

Коротко о видео

В видео показан разбор технического собеседования по 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 подходит, например, для обхода иерархии сотрудников.
  • Тест функции записи в БД требует заранее определить, проверяется ли бизнес-логика с подменой зависимости или реальная интеграция с базой.

Рекомендуем посмотреть