Открытое тестовое интервью на Go разработчика | Эйч Навыки
Демонстрационное техническое собеседование по Go с разбором ответов кандидата и последующей презентацией программы подготовки с персональным фидбеком.
Эйч Навыки — менторская программа
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 5 тыс.
- Лайки на YouTube: 103
Таймлайн
Коротко о видео
Это открытое демонстрационное 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.