Подборка объединяет вопросы, отмеченные на этапах интервью в 2ГИС. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: api, microservices, backend.
Основные темы и навыки
api 15microservices 15backend 11integration 9concurrency 6message brokers 5messaging 3message-brokers 3
Форматы вопросов
Поведенческие вопросы15
Ориентировочная сложность
Продвинутые8
Практические7
С чего начать подготовку
Начните с раздела «Поведенческие вопросы» и проверьте, можете ли дать короткий ответ своими словами.
Затем разберите вопросы по теме «api» и свяжите ответы с собственным опытом.
Завершите подготовку практикой: проговорите решение, ограничения и возможные альтернативы.
errors.Is и errors.As в Go: различия и сценарии использования пакет errors предназначен для работы с ошибками errors.Is: определяет, совпадает ли ошибка с заданной или встречается ли она внутри цепочки обёрнутых…
Где в Go объявлять интерфейсы и как реализовать принцип инверсии зависимостей? Архитектура, интерфейсы и DI Интерфейс следует определять на стороне потребителя, а не компонента-поставщика Он фиксирует набор методов,…
Как из сервиса вернуть доменную ошибку и отдать корректный HTTP-код? Контекст: обработка ошибок в backend-сервисах и API Для представления доменных ошибок применяю исключения (exceptions) либо error objects В…
Как корректно настроить http.Server.Shutdown для воркеров и ресурсов Контекст: graceful shutdown HTTP-сервера в Go http.Server.Shutdown выполняет плавную остановку: прекращает приём новых соединений и ожидает…
Как сохранить в Kafka только последнее событие пользователя? использовать ключи сообщений (key) — в качестве ключа передавать идентификатор пользователя включить для топика compaction — Kafka сохранит только последнее…
многопоточность, защита данных выбирать lock-free структуры данных, например ConcurrentHashMap заменять блокировки на атомарные операции (atomic variables), где это возможно сводить критические секции к минимально…
Как остановить несколько воркеров с помощью общего контекста? многопоточность и управление жизненным циклом создать единый контекст отмены (например, context.WithCancel в Go) передать этот контекст всем воркерам…
Как сопоставлять доменные ошибки с HTTP-кодами? Доменная ошибка описывает бизнес-логику, а HTTP-код относится к протоколу 400 (Bad Request): ошибки валидации и некорректные входные параметры 404 (Not Found):…
Как работает context.Done() и почему закрытие канала получают все горутины? context.Done() — канал для наблюдения за отменой контекста возвращает канал, закрываемый при отмене или завершении заданного времени одно…
Сигналы завершения и причина неперехватываемости SIGKILL Сигналы завершения SIGINT, SIGTERM, SIGQUIT дают процессу возможность освободить ресурсы и корректно завершить работу SIGINT — сигнал прерывания, отправляемый с…
Архитектурные функции транспортного и сервисного слоёв транспортный слой: обеспечивает связь с внешним миром — API, UI и другими системами транспортный слой: принимает входящие запросы и направляет их во внутренние…
Средства Go для контроля времени выполнения операции WithTimeout: запускает отсчёт с момента вызова и принимает duration WithDeadline: устанавливает конкретное время в будущем — дату и время завершения WithTimeout…