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

Вопросы для позиции «Backend-разработчик»

1967 вопросов для подготовки на позицию Backend-разработчик

1967 вопросов 1634 компании 353 технологии

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

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

Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, api, database.

Каталог

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

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

Как разработали сервис на FastAPI, Celery и RabbitMQ для нечёткого поиска и сверки внутренней базы с внешними источниками, полностью отказавшись от ручного аудита?

FastAPI принимает задания, Celery выполняет сверку, RabbitMQ доставляет задачи. Полный отказ от ручного аудита нельзя объявлять без подтверждённых требований и измерений качества конкретного проекта.

Читать ответ
Теория

Похоже, вы затрудняетесь с ответом. Можете рассказать, как обычно обрабатываете завершение фоновых задач в FastAPI?

Сначала различаю задачу внутри процесса и надёжную внешнюю очередь. Для каждой нужны наблюдаемый результат, обработка исключения и стратегия shutdown; простое создание coroutine не означает успешное выполнение.

Читать ответ
Лайвкодинг

В AsyncIO нужно атомарно уменьшить лимит в общем состоянии после await. Какой подход наиболее надёжен?

Наиболее надёжен последний вариант с учётом области состояния: атомарная операция Redis для нескольких workers либо asyncio.Lock для одного event loop. Проверка и уменьшение должны составлять одну критическую операцию.

Читать ответ
Теория

Если не использовать Depends, можно ли ещё как-то реализовать централизованную проверку в FastAPI?

Да: общую HTTP-проверку можно вынести в middleware или пользовательский APIRoute. Выбор зависит от того, нужна ли проверка всему приложению, группе маршрутов или только конкретной операции.

Читать ответ
Теория

Ты работал в основном с FastAPI или с Django? Можешь рассказать про select_related и prefetch_related — что из этого что и зачем?

В Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.

Читать ответ
Теория

Пожалуйста, объясните, почему однопоточный цикл событий в FastAPI не гарантирует корректность одновременного изменения общего словаря лимитов.

Один event loop последовательно исполняет участки кода, но coroutine могут чередоваться на await. Проверка лимита и его изменение, разделённые ожиданием, становятся гонкой даже в одном потоке.

Читать ответ
System Design

Чем микросервис отличается от модульного монолита? Каковы их преимущества и недостатки?

Микросервисы развертываются и взаимодействуют как отдельные сервисы, модульный монолит — одно приложение с внутренними границами модулей. Главное различие — распределённость и независимость жизненного цикла.

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

Приведите несколько примеров микросервисов, которые вы больше всего разрабатывали: их логика и интересные сложности.

Выберите два-три действительно разработанных сервиса и для каждого опишите бизнес-задачу, границы ответственности и один сложный инженерный момент. Перечень технологий без логики сервиса малоинформативен.

Читать ответ
Лайвкодинг

async def import_orders(

В импорте опасны общий изменяемый аргумент по умолчанию, вероятный блокирующий API-вызов и слишком широкий обработчик ошибок. Повторный запуск также требует защиты от дублирования заказов.

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

Расскажите, распиливали ли вы монолит на микросервисы: это была отдельная задача или часть работы на последнем месте?

Уточните, был ли у вас реальный проект выделения сервисов и какую часть вы выполняли. Объясните исходную причину, выбранную границу и переходный механизм, а не только факт появления новых репозиториев.

Читать ответ