Подготовка к интервью

Вопросы на собеседовании в 2ГИС

15 вопросов с собеседований в 2ГИС

15 вопросов 119 компаний 249 технологий

Усильте резюме перед собеседованием

Проверьте, насколько резюме подходит выбранной позиции, и получите рекомендации по улучшению.

Анализ резюме

Что проверяют на интервью

Как устроена подборка

Подборка объединяет вопросы, отмеченные на этапах интервью в 2ГИС. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: api, microservices, backend.

Основные темы и навыки

api 15 microservices 15 backend 11 integration 9 concurrency 6 message brokers 5 messaging 3 message-brokers 3

Форматы вопросов

  • Поведенческие вопросы15

Ориентировочная сложность

  • Продвинутые8
  • Практические7

С чего начать подготовку

  1. Начните с раздела «Поведенческие вопросы» и проверьте, можете ли дать короткий ответ своими словами.
  2. Затем разберите вопросы по теме «api» и свяжите ответы с собственным опытом.
  3. Завершите подготовку практикой: проговорите решение, ограничения и возможные альтернативы.
Сбросить

Каталог

Результаты поиска

Найдено: 15
Поведенческий

В чём разница между errors.Is и errors.As в Go и когда применять каждую функцию?

errors.Is и errors.As в Go: различия и сценарии использования пакет errors предназначен для работы с ошибками errors.Is: определяет, совпадает ли ошибка с заданной или встречается ли она внутри цепочки обёрнутых…

Читать ответ
Поведенческий

Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей?

Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей? Архитектура, интерфейсы и DI Интерфейс следует определять на стороне потребителя, а не компонента-поставщика Он фиксирует набор методов,…

Читать ответ
Поведенческий

Как из сервиса вернуть доменную ошибку и преобразовать её в корректный HTTP-код?

Как из сервиса вернуть доменную ошибку и отдать корректный HTTP-код? Контекст: обработка ошибок в backend-сервисах и API Для представления доменных ошибок применяю исключения (exceptions) либо error objects В…

Читать ответ
Поведенческий

Как корректно настроить http.Server.Shutdown для воркеров и ресурсов?

Как корректно настроить http.Server.Shutdown для воркеров и ресурсов Контекст: graceful shutdown HTTP-сервера в Go http.Server.Shutdown выполняет плавную остановку: прекращает приём новых соединений и ожидает…

Читать ответ
Поведенческий

Как настроить Kafka, чтобы для пользователя сохранялось только последнее событие?

Как сохранить в Kafka только последнее событие пользователя? использовать ключи сообщений (key) — в качестве ключа передавать идентификатор пользователя включить для топика compaction — Kafka сохранит только последнее…

Читать ответ
Поведенческий

Как обеспечить потокобезопасность in-memory репозитория без потери производительности?

многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…

Читать ответ
Поведенческий

Как остановить несколько воркеров с помощью общего контекста?

Как остановить несколько воркеров с помощью общего контекста? многопоточность и управление жизненным циклом создать единый контекст отмены (например, context.WithCancel в Go) передать этот контекст всем воркерам…

Читать ответ
Поведенческий

Как правильно сопоставлять доменные ошибки с HTTP-кодами 400, 404, 409 и 500?

Как сопоставлять доменные ошибки с HTTP-кодами? Доменная ошибка описывает бизнес-логику, а HTTP-код относится к протоколу 400 (Bad Request): ошибки валидации и некорректные входные параметры 404 (Not Found):…

Читать ответ
Поведенческий

Как работает context.Done() и почему закрытие канала получают все горутины?

Как работает context.Done() и почему закрытие канала получают все горутины? context.Done() — канал для наблюдения за отменой контекста возвращает канал, закрываемый при отмене или завершении заданного времени одно…

Читать ответ
Поведенческий

Какие сигналы завершения нужно обрабатывать и почему SIGKILL нельзя перехватить?

Сигналы завершения и причина неперехватываемости SIGKILL Сигналы завершения SIGINT, SIGTERM, SIGQUIT дают процессу возможность освободить ресурсы и корректно завершить работу SIGINT — сигнал прерывания, отправляемый с…

Читать ответ
Поведенческий

Какую роль в архитектуре приложения выполняют транспортный и сервисный слои?

Архитектурные функции транспортного и сервисного слоёв транспортный слой: обеспечивает связь с внешним миром — API, UI и другими системами транспортный слой: принимает входящие запросы и направляет их во внутренние…

Читать ответ
Поведенческий

Когда в Go выбирать context.WithTimeout, а когда context.WithDeadline?

Средства Go для контроля времени выполнения операции WithTimeout: запускает отсчёт с момента вызова и принимает duration WithDeadline: устанавливает конкретное время в будущем — дату и время завершения WithTimeout…

Читать ответ