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

Разбор Go-собеседования: конкурентность и споры с интервьюером

Автор разбирает ответы Go-кандидата о назначении языка, конкурентности и рантайме, а также спор о race condition.

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

Открыть на YouTube

Таймлайн

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

Автор воспроизводит фрагменты Go-собеседования и комментирует как вопросы интервьюера, так и ответы кандидата. В технической части кандидат объясняет, почему Go используют для I/O-нагруженных сервисов, сравнивает его с другими языками и говорит о структурах и методах вместо привычных классов. Затем разговор переходит к goroutine, каналам, планировщику M-G-P, netpoller и проблемам совместного доступа к данным: data race, deadlock и starvation. Отдельный эпизод посвящён спору о неопределённом порядке выполнения и тому, когда на интервью стоит аргументированно возражать.

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

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

  • Применение Go для I/O-нагруженных сервисов стоит объяснять профилем нагрузки и моделью конкурентности, не сводя назначение языка исключительно к микросервисам.
  • Горутины — сущности рантайма Go, мультиплексируемые на потоки ОС; netpoller участвует в ожидании готовности сетевого I/O, но не во всех переключениях контекста.
  • Race condition означает зависимость корректности от порядка событий, а data race — несинхронизированный конфликтующий доступ к одной области памяти. Недетерминированный порядок сам по себе не ошибка, если результат соответствует требованиям.
  • В техническом разногласии полезно уточнить инварианты задачи и спокойно обосновать позицию, а не спорить только о терминах.

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

1:39:17
BackendMiddle

Мок-собеседование на Middle Go-разработчика в Wildberries с код-ревью

Открытое мок-собеседование, моделирующее отбор на позицию Middle Go-разработчика в Wildberries. Кандидат отвечает на вопросы о конкурентности в Go и разбирает фрагмент кода; интервьюер уточняет решения по таймерам, лимитированию запросов и устойчивости HTTP-клиента.