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