1967 вопросов для подготовки на позицию Backend-разработчик
1967 вопросов1634 компании353 технологии
Что проверяют на интервью
Как устроена подборка
Подборка помогает системно подготовиться к интервью на позицию Backend-разработчик: проверить теорию, потренировать практические задачи и объяснение решений. В подборке чаще встречаются темы: backend, api, database.
Для серверных REST API в Python часто используют Django REST Framework, FastAPI и Flask с соответствующими расширениями. Для клиентских запросов служат другие библиотеки, например HTTPX или requests.
Если писали API-клиенты, расскажите об одном реальном контракте и ключевых решениях: авторизация, сериализация, timeout, ошибки, retries и тестирование. Не ограничивайтесь названием HTTP-библиотеки.
FastAPI принимает задания, Celery выполняет сверку, RabbitMQ доставляет задачи. Полный отказ от ручного аудита нельзя объявлять без подтверждённых требований и измерений качества конкретного проекта.
Сначала различаю задачу внутри процесса и надёжную внешнюю очередь. Для каждой нужны наблюдаемый результат, обработка исключения и стратегия shutdown; простое создание coroutine не означает успешное выполнение.
Наиболее надёжен последний вариант с учётом области состояния: атомарная операция Redis для нескольких workers либо asyncio.Lock для одного event loop. Проверка и уменьшение должны составлять одну критическую операцию.
Да: общую HTTP-проверку можно вынести в middleware или пользовательский APIRoute. Выбор зависит от того, нужна ли проверка всему приложению, группе маршрутов или только конкретной операции.
В Django select_related получает одиночные связи через SQL JOIN, а prefetch_related загружает связанные объекты отдельными запросами и связывает их в Python. Оба помогают устранить N+1.
Один event loop последовательно исполняет участки кода, но coroutine могут чередоваться на await. Проверка лимита и его изменение, разделённые ожиданием, становятся гонкой даже в одном потоке.
Микросервисы развертываются и взаимодействуют как отдельные сервисы, модульный монолит — одно приложение с внутренними границами модулей. Главное различие — распределённость и независимость жизненного цикла.
Выберите два-три действительно разработанных сервиса и для каждого опишите бизнес-задачу, границы ответственности и один сложный инженерный момент. Перечень технологий без логики сервиса малоинформативен.
В импорте опасны общий изменяемый аргумент по умолчанию, вероятный блокирующий API-вызов и слишком широкий обработчик ошибок. Повторный запуск также требует защиты от дублирования заказов.
Уточните, был ли у вас реальный проект выделения сервисов и какую часть вы выполняли. Объясните исходную причину, выбранную границу и переходный механизм, а не только факт появления новых репозиториев.