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

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

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

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

Открыть на YouTube

Таймлайн

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

Это открытое демонстрационное mock-интервью для Go-разработчика уровня Middle: интервьюер Вова задаёт Паше вопросы и разбирает ответы. Обсуждаются передача значений, слайсы, map, интерфейсы, каналы, context, планировщик goroutine, синхронизация, наблюдаемость и масштабирование баз данных. В конце интервьюер даёт Паше обратную связь: базовые темы Go и типовые задачи с каналами пройдены хорошо, а внутреннее устройство планировщика и распределённые системы стоит изучить глубже.

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

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

  • В Go аргументы передаются по значению; при передаче slice копируется его заголовок с указателем на общий backing array, а не весь массив элементов.
  • Для map нужно понимать comparable-ключи, бакеты, коллизии и эвакуацию данных; порядок обхода map не гарантирован и намеренно рандомизируется.
  • Обычная map не потокобезопасна: одновременные чтение и запись приводят к panic, а параллельные чтения допустимы, если map не изменяется.
  • Интерфейсы полезны не только для абстракции реализаций, но и для моков в тестах; typed nil внутри интерфейса отличается от nil-интерфейса и может вести себя неожиданно.
  • Отправка или чтение из nil-канала блокируются, а закрытие nil-канала вызывает panic; для конкурентного кода нужны корректная инициализация, WaitGroup и защита общей map через mutex.
  • Context следует использовать для отмены, дедлайнов и сквозных системных данных запроса; бизнес-данные лучше передавать явно в сигнатурах функций.
  • При деградации чтения из PostgreSQL сначала стоит опереться на логи, метрики и трассировки, затем изучить план через EXPLAIN; для роста нагрузки обсуждаются кеширование, read-реплики, шардирование и consistent hashing.

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