135 вопросов по FastAPI с технических собеседований
135 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
На странице собраны вопросы по FastAPI — от проверки базовых принципов до практического применения и архитектурных решений. В подборке чаще встречаются темы: backend, api, fastapi.
Сначала проверьте контракт старых клиентов и требования к надёжности: ссылка на ещё не созданный файл вводит в заблуждение, а десятиминутная BackgroundTasks-задача может потеряться при рестарте.
Лучший первый шаг — снять профиль запросов и найти причину 35 обращений. После этого выборочно применяют select_related или prefetch_related к действительно нужным связям.
Depends(get_db) просит FastAPI получить зависимость через get_db и передать её результат обработчику. Это отделяет создание и освобождение ресурса от бизнес-логики ручки.
ASGI-сервер передаёт запрос FastAPI, а event loop исполняет coroutine-задачи до точек ожидания. Пока одна задача ждёт неблокирующий I/O, цикл может выполнять другие.
Для простого best-effort действия подходит BackgroundTasks, но важное регистрационное письмо лучше отправлять через долговечную очередь и worker. multiprocessing не решает надёжность доставки.
Гонка возникает, если между чтением лимита и записью нового значения есть await: другая корутина может использовать тот же старый лимит. Один поток не делает такую операцию атомарной.
Уточните формулировку: FastAPI — ASGI-фреймворк с поддержкой async и обычных def-обработчиков, а не просто синхронный фреймворк. Затем перечислите свой реальный опыт.
Depends объявляет зависимость обработчика FastAPI: фреймворк вызывает указанную функцию, разрешает её зависимости и передаёт результат параметру обработчика.
Наиболее зрелый первый шаг — снять трассировку, найти запросы и затем настроить выборочную загрузку связей. Число 35 само по себе ещё не объясняет причину задержки.
Такую структуру можно использовать для слоистой архитектуры: api — HTTP, application — сценарии, domain — бизнес-правила, inf — адаптеры БД, очередей, кеша и внешних API.
Нужны проверка владельца счёта, точное представление суммы, единая транзакция, защита конкурентного списания и идемпотентность. Два независимых UPDATE могут оставить деньги списанными без зачисления.
Исправьте COPY, зафиксируйте образ и зависимости, отключите DEBUG и запускайте процесс непривилегированным пользователем. Для полной воспроизводимости нужны digest и lock-файл с хешами.