Вернуться в каталог собеседований

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

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

it father.
  • Опубликовано на YouTube:
  • Просмотры на YouTube: 8,8 тыс.
  • Лайки на YouTube: 132
Открыть на 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 — несинхронизированный конфликтующий доступ к одной области памяти. Недетерминированный порядок сам по себе не ошибка, если результат соответствует требованиям.
  • В техническом разногласии полезно уточнить инварианты задачи и спокойно обосновать позицию, а не спорить только о терминах.

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