Зачем проходить тест на профессию «Go-разработчик Senior»?
Выбор профессии — одно из важнейших решений в жизни. Этот бесплатный онлайн-тест поможет определить, обладаете ли вы ключевыми качествами для работы Go-разработчик Senior.
За 3 минуты вы получите:
- Оценку пригодности к профессии по шкале от 0 до 100%
- Разбор сильных сторон и зон роста
- Персональные рекомендации по развитию
- Актуальную информацию о зарплате: 150 000 ₽
- Подборку проверенных курсов для обучения профессии
Тест основан на анализе требований работодателей к специалистам уровня Junior и Middle. Результаты носят рекомендательный характер и помогут сделать осознанный выбор.
Вопросы и ответы о тесте на профессию «Go-разработчик Senior»
В высоконагруженном сервисе на Go вы замечаете, что потребление памяти постоянно растёт, и через несколько часов сервис падает с OOM. Вы уже проверили утечки горутин и закрытие каналов. Ваши действия?
Варианты ответа: Сниму профиль кучи с помощью pprof, проанализирую аллокации и найду объекты, которые не освобождаются, затем исправлю код., Увеличу лимиты памяти в конфигурации пода и добавлю периодический перезапуск сервиса по крону., Добавлю больше логов в подозрительные места и буду наблюдать, не появится ли ошибка снова..
При код-ревью пул-реквеста джуниора вы видите, что он использует глобальную переменную для хранения конфигурации и изменяет её в нескольких горутинах без синхронизации. Как вы поступите?
Варианты ответа: Оставлю комментарий с объяснением проблемы гонки данных, предложу использовать sync.RWMutex или передавать конфигурацию через контекст, и попрошу исправить., Сам исправлю код, чтобы не тратить время на объяснения, и смержу пул-реквест., Пропущу пул-реквест, так как это не критично для текущей задачи, а джуниор потом сам разберётся..
Вам поручили спроектировать микросервис для обработки платежей. Требуется высокая надёжность и идемпотентность операций. Какой подход вы выберете?
Варианты ответа: Использую паттерн Saga с компенсирующими транзакциями, уникальные ключи идемпотентности и сохранение состояния в БД с транзакциями., Сделаю простой HTTP-сервис с синхронными вызовами и повторными попытками при ошибках на стороне клиента., Положусь на то, что сеть надёжна, и буду просто логировать ошибки без дополнительной обработки..
Вы обнаружили, что ваш сервис на Go потребляет слишком много CPU в продакшене. Профилирование показывает, что 70% времени уходит на сборку мусора. Что вы предпримете?
Варианты ответа: Проанализирую аллокации с помощью pprof, уменьшу количество аллокаций (например, используя sync.Pool, буферизованные каналы, переиспользование объектов) и настрою GOGC., Увеличу количество ядер CPU для пода, чтобы сборщик мусора работал быстрее., Отключу сборщик мусора с помощью GOGC=off и буду вручную вызывать runtime.GC() по таймеру..
Тимлид просит вас оценить сроки разработки нового модуля. Вы понимаете, что для качественной реализации потребуется 3 недели, но руководство хочет услышать 1 неделю. Ваши действия?
Варианты ответа: Предоставлю реалистичную оценку с разбивкой по задачам и рисками, объясню, почему сжатые сроки приведут к техническому долгу., Соглашусь на 1 неделю, но буду работать сверхурочно, чтобы успеть., Предложу компромисс: сделаю базовую версию за 1 неделю, а остальное — позже, без уточнения деталей..