Зачем проходить тест на профессию «Go-разработчик Middle»?
Выбор профессии — одно из важнейших решений в жизни. Этот бесплатный онлайн-тест поможет определить, обладаете ли вы ключевыми качествами для работы Go-разработчик Middle.
За 3 минуты вы получите:
- Оценку пригодности к профессии по шкале от 0 до 100%
- Разбор сильных сторон и зон роста
- Персональные рекомендации по развитию
- Актуальную информацию о зарплате: 150 000 ₽
- Подборку проверенных курсов для обучения профессии
Тест основан на анализе требований работодателей к специалистам уровня Junior и Middle. Результаты носят рекомендательный характер и помогут сделать осознанный выбор.
Вопросы и ответы о тесте на профессию «Go-разработчик Middle»
Вы заметили, что в продакшене микросервис на Go периодически падает с ошибкой 'fatal error: concurrent map writes'. Ваши действия?
Варианты ответа: Проанализирую стек вызовов, найду место записи в map без мьютекса, добавлю sync.RWMutex или заменю на sync.Map, напишу тест с race detector и выкачу хотфикс., Перезапущу сервис и временно увеличу лимиты памяти, чтобы дождаться планового релиза с исправлением., Откачу последнее изменение, даже если оно не связано с map, и попрошу коллегу разобраться..
При код-ревью вы видите, что коллега использует глобальную переменную для хранения конфигурации и меняет её в разных горутинах без синхронизации. Как вы поступите?
Варианты ответа: Оставлю комментарий с объяснением data race, предложу передавать конфиг через DI или использовать atomic.Value, и попрошу добавить тест с -race., Промолчу, если тесты проходят, но отмечу, что в будущем стоит вынести конфиг в отдельный пакет., Сразу одобрю MR, так как это не критично для текущей задачи..
Вам поручили оптимизировать высоконагруженный HTTP-обработчик на Go, который стал потреблять слишком много CPU. Профилирование показало, что 40% времени уходит на json.Marshal. Ваши действия?
Варианты ответа: Проведу бенчмарки, попробую заменить на jsoniter или easyjson, либо кэшировать результат, если данные статичны, и сравню производительность., Увеличу количество воркеров и добавлю кэширование на уровне reverse proxy., Перепишу обработчик на асинхронную модель с каналами, не меняя сериализацию..
Вы проектируете микросервис, который должен общаться с другим сервисом по gRPC. Как вы обеспечите отказоустойчивость при сетевых сбоях?
Варианты ответа: Настрою таймауты, retry с exponential backoff и circuit breaker (например, с помощью go-resiliency), а также добавлю health checks и метрики., Добавлю простой retry с фиксированной задержкой и логирование ошибок., Положусь на то, что сеть внутри кластера надёжна, и не буду усложнять код..
В вашем сервисе на Go утечка горутин: количество горутин растёт со временем. Как вы будете искать причину?
Варианты ответа: Сниму профиль горутин через pprof, проанализирую стеки, найду горутины, которые блокируются на канале или мьютексе, и исправлю., Добавлю ограничение на максимальное количество горутин через семафор и перезапущу сервис по расписанию., Увеличу лимиты памяти и количество ядер, чтобы сервис справлялся..