Разбор Go-собеседования: конкурентность и споры с интервьюером
Автор разбирает ответы Go-кандидата о назначении языка, конкурентности и рантайме, а также спор о race condition.
it father.
Открыть на YouTube- Опубликовано на YouTube:
- Просмотры на YouTube: 8,8 тыс.
- Лайки на YouTube: 132
Таймлайн
Коротко о видео
Автор воспроизводит фрагменты Go-собеседования и комментирует как вопросы интервьюера, так и ответы кандидата. В технической части кандидат объясняет, почему Go используют для I/O-нагруженных сервисов, сравнивает его с другими языками и говорит о структурах и методах вместо привычных классов. Затем разговор переходит к goroutine, каналам, планировщику M-G-P, netpoller и проблемам совместного доступа к данным: data race, deadlock и starvation. Отдельный эпизод посвящён спору о неопределённом порядке выполнения и тому, когда на интервью стоит аргументированно возражать.
Затронутые темы
Что взять на заметку
- Применение Go для I/O-нагруженных сервисов стоит объяснять профилем нагрузки и моделью конкурентности, не сводя назначение языка исключительно к микросервисам.
- Горутины — сущности рантайма Go, мультиплексируемые на потоки ОС; netpoller участвует в ожидании готовности сетевого I/O, но не во всех переключениях контекста.
- Race condition означает зависимость корректности от порядка событий, а data race — несинхронизированный конфликтующий доступ к одной области памяти. Недетерминированный порядок сам по себе не ошибка, если результат соответствует требованиям.
- В техническом разногласии полезно уточнить инварианты задачи и спокойно обосновать позицию, а не спорить только о терминах.