Вернуться в видеотекуТехническое собеседование Python-разработчика с компанией Aston
Разбор публичного технического интервью Python-разработчика: код-ревью FastAPI-сервиса и серия вопросов по backend-разработке, Python, БД и инструментам поставки.
- Направление
- Backend
- Формат
- Техническое собеседование
- Компания
Aston- Длительность
- 1 ч 33 мин
Коротко о видео
Публичное техническое собеседование в формате код-ревью небольшого FastAPI-приложения на Python, собирающего данные о COVID-19. Участники обсуждают модульную архитектуру, SQLAlchemy-модели, настройки, зависимости FastAPI, HTTP, middleware, CRUD, фоновые задачи и ошибки в обновлении данных. Во второй части интервью проверяют знания Python, асинхронности, баз данных, Docker, CI/CD, Poetry и REST; в конце интервьюер даёт участнику положительную обратную связь с замечанием о необходимости систематизировать отдельные детали асинхронности.
Затронутые темы
Что взять на заметку
- При код-ревью разделяйте приложение на модули маршрутов, моделей, схем, сервисов/репозиториев и настроек; неиспользуемые импорты и закомментированный код лучше удалить, так как историю можно восстановить через Git.
- URL базы, учётные данные, CORS-параметры и режимы окружений стоит вынести из кода в настройки и переменные окружения; в разговоре упоминаются Pydantic Settings и вложенные настройки.
- Для городов и стран предложена нормализация: отдельная таблица Country и связь «один ко многим» с City уменьшают дублирование и риск несогласованных названия, кода и населения страны.
- Нужно явно различать ORM-модели, описывающие хранение в БД, и Pydantic-схемы, описывающие входные и выходные API-данные; для создания и чтения могут понадобиться разные схемы.
- При синхронизации внешних данных не следует очищать БД до успешной проверки и записи новых данных: участники предлагают валидацию входного JSON и транзакцию.
- Для диагностики медленных endpoint’ов в production обсуждаются логи и измерение времени запроса в middleware, а профилирование предлагается прежде всего для локального анализа.
- К подготовке стоит включить FastAPI Depends и генераторы с yield, декораторы и functools.wraps, asyncio и GIL, реляционные БД, шардирование/репликацию, Docker Compose, GitLab CI, pre-commit, pyproject.toml/Poetry и REST.