Подготовка к собеседованию
Backend Python: вопросы и ответы на собеседовании
Подборка вопросов по Python, FastAPI или Django, асинхронности, ORM и проектированию API.
Python
4 вопросовЧем список отличается от кортежа?junior
Список изменяемый и удобен для коллекций, которые нужно менять. Кортеж неизменяем, может быть ключом словаря при хешируемых элементах и хорошо выражает фиксированную структуру.
Что такое генератор?junior
Генератор вычисляет элементы лениво через yield и хранит только текущее состояние. Это экономит память при обработке больших файлов или потоков данных.
Что такое GIL?middle
В CPython Global Interpreter Lock не позволяет нескольким потокам одновременно выполнять байткод Python. Потоки всё равно полезны для I/O, а CPU-bound задачи выносят в процессы или native-код.
Зачем нужны type hints?junior
Аннотации делают контракты функций явными и помогают IDE, mypy и ревью. Они не заменяют runtime-валидацию внешних данных.
Web-фреймворки
3 вопросовКак организовать валидацию входных данных?middle
Контракт описывают схемой, например Pydantic, валидируют на границе приложения и возвращают единый ответ 4xx. В бизнес-слое не стоит повторять те же проверки без необходимости.
Когда выбрать Django, а когда FastAPI?middle
Django даёт полноценную платформу с ORM, админкой и готовыми модулями. FastAPI удобен для типизированных API, высокой скорости разработки и асинхронных сервисов с небольшой предметной областью.
Как организовать конфигурацию приложения?middle
Разделяют настройки по окружениям, читают секреты из переменных или vault и валидируют их при старте. Значения по умолчанию не должны случайно включать небезопасный режим.
Асинхронность и данные
3 вопросовЧто блокирует asyncio?middle
Синхронный CPU-код и блокирующие вызовы вроде обычного requests внутри async-функции. Их выносят в executor, заменяют async-библиотекой или запускают в отдельном процессе.
Как оптимизировать медленный запрос ORM?senior
Смотрят SQL и план выполнения, добавляют подходящие индексы, убирают N+1 через join или prefetch, ограничивают поля и объём выборки. Оптимизацию подтверждают измерением.
Как закрывать ресурсы при исключении?junior
Используют контекстные менеджеры with или async with. Освобождение соединений, файлов и временных объектов должно происходить даже при отмене задачи.
Как использовать этот список
Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.
Посмотреть другие профессии →