Вернуться в видеотеку

Техническое собеседование Python-разработчика с компанией Aston

Разбор публичного технического интервью Python-разработчика: код-ревью FastAPI-сервиса и серия вопросов по backend-разработке, Python, БД и инструментам поставки.

Источник: Habr

Открыть на YouTube

Таймлайн

Коротко о видео

Публичное техническое собеседование в формате код-ревью небольшого 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.

Рекомендуем посмотреть