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

Открытое интервью на Go-разработчика | Эйч Навыки

Демонстрационное техническое интервью по Go с подробным разбором ответов кандидата и финальным фидбеком. В первой и заключительной частях организаторы рекламируют менторскую программу «Эйч Навыки».

Источник: Эйч Навыки — менторская программа

Открыть на YouTube

Таймлайн

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

Это открытое мок-собеседование на Go-разработчика: после вводной части кандидат Дима отвечает на вопросы Сергея Мошкина о языке Go, рантайме, инфраструктуре и базах данных. Разбираются карты и слайсы, структуры и интерфейсы, GC, модель GMP, горутины, контексты, каналы, ошибки, тестирование, наблюдаемость, Docker, Kubernetes и шардирование. В финале интервьюер даёт кандидату положительную оценку уровня middle+ и называет зоны роста; организаторы также рассказывают о менторском абонементе «Эйч Навыки».

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

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

  • Для ключей map нужно знать требование сравнимости типов: нельзя использовать slice, map и function; struct допустима, если все её поля сравнимы. При известном размере map стоит задавать ёмкость, а для множества ключей использовать struct{} как значение.
  • При передаче slice в функцию копируется заголовок, но исходный и переданный slice могут разделять backing array: сортировка изменит исходные элементы, а append внутри функции не изменит длину исходного slice, хотя может записать данные в общий массив.
  • Подготовьте объяснение встраивания структур, отличий value- и pointer-receiver, выравнивания полей, устройства interface и цены type assertion. В интервью отдельно обсуждаются неявность утиной типизации и дополнительная работа при распаковке interface{}.
  • Нужно различать отмену горутин через context или каналы и прямое «убийство», которого нет; для context.Value лучше скрывать типизированный ключ и доступ за функциями пакета, а не использовать строковый ключ напрямую.
  • Для наблюдаемости разделяйте назначение инструментов: метрики показывают агрегированное состояние, tracing связывает путь запроса через сервисы, а профилирование помогает найти причину долгой работы внутри одного span.
  • Для пакета Go полезно иметь внутренние тесты в том же package для приватных деталей и внешние тесты в package_test для публичного API; интервьюер прямо исправляет идею вовсе не тестировать приватные методы.
  • По итогам обратной связи кандидату предложено углубить понимание памяти горутин, проектирования пакетов и Kubernetes; базовые темы Go, слайсы, интерфейсы и часть рантайма интервьюер оценил положительно.

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