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

Go: техническое собеседование Senior-разработчика

Запись технического собеседования на позицию Senior Go-разработчика. Интервьюер проверяет знание типов данных Go, строк, слайсов, map и интерфейсов, затем обсуждает горутины, context и синхронизацию, REST и аутентификацию, а также индексы PostgreSQL и задачу очистки большой таблицы.

Источник: it father.

Открыть на YouTube

Таймлайн

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

Интервьюер последовательно задаёт кандидату вопросы по Go и уточняет его ответы. В первой части обсуждаются встроенные типы, устройство строк и слайсов, map и интерфейсы. Затем разговор переходит к планировщику горутин и модели GMP, отмене через context, каналам и RWMutex. В заключении разбираются REST, способы аутентификации, индексы PostgreSQL и вариант сохранения 200 нужных записей из таблицы на 100 млн строк. Некоторые формулировки кандидата неточны, поэтому их стоит воспринимать как материал для разбора, а не как готовые ответы.

Затронутые темы

Что взять на заметку

  • В Go строка неизменяема и не является слайсом; len строки считает байты, а для работы с Unicode-символами нужны руны.
  • Обычная map небезопасна при одновременной записи и чтении: доступ нужно синхронизировать или обоснованно применять sync.Map.
  • Отмена через context кооперативна: CancelFunc закрывает сигнал ctx.Done(), а каждая горутина должна сама проверять его через select или ctx.Err().
  • RWMutex допускает несколько одновременных читателей, но запись требует эксклюзивной блокировки.
  • Basic Auth кодирует логин и пароль в Base64, а не шифрует их, поэтому его следует использовать только поверх TLS; Bearer-токен сам по себе также не означает шифрование.
  • В PostgreSQL B-tree — индекс по умолчанию и подходит для равенства и диапазонов; hash-индекс не является стандартным индексом первичного ключа.
  • При сохранении небольшой выборки из очень большой таблицы перенос данных в новую таблицу и переключение на неё может быть практичной стратегией, но требует учёта зависимостей, схемы и окна переключения.

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