Чему вы научитесь
- Проектировать backend-приложения на FastAPI с использованием Clean Architecture
- Разделять систему на domain, application, infrastructure и delivery слои
- Реализовывать Use Cases, репозитории и Unit of Work
- Работать с SQLAlchemy, миграциями и persistence-слоем
- Создавать JWT-аутентификацию, роли и систему авторизации
- Писать unit, integration и end-to-end тесты
- Разрабатывать интерактивные системы тестирования и отслеживания прогресса
- Реализовывать платформу кодовых задач с автоматической проверкой решений
- Настраивать Docker-runner для безопасного исполнения пользовательского кода
- Работать с очередями, worker-процессами и брокерами сообщений
- Проектировать масштабируемую архитектуру образовательной платформы
- Оптимизировать производительность через индексы и кеширование
О курсе
Это практический курс по разработке современных backend-систем на FastAPI с использованием Clean Architecture. Вместе мы создадим полноценную образовательную платформу: от MVP и системы курсов до тестирования, кодовых задач и аналитики. Вы научитесь проектировать масштабируемую архитектуру, работать с SQLAlchemy, JWT, ролями, очередями, Docker-runner и автоматизированным тестированием. Курс ориентирован на разработчиков, которые хотят выйти за рамки простых CRUD-приложений и научиться строить сложные backend-проекты.
Код проекта, который создается в рамках курса, вы можете посмотреть на GitHub.
Модуль 1: «MVP» мы спроектируем и реализуем первую рабочую версию онлайн-школы на FastAPI с опорой на Clean Architecture. Разберем структуру проекта, разделим домен, application, persistence и delivery-слои, настроим конфигурацию, ошибки и инфраструктурную основу. Реализуем ключевые сущности Course, Module, Section, Lecture и User, добавим роли пользователей и базовую модель доступа. Построим read- и write-сценарии через Use Cases, оформим контракты слоев, подключим ORM, репозитории, Unit of Work и миграции базы данных. Затем вынесем функциональность в FastAPI-эндпоинты, оформим OpenAPI-документацию, реализуем JWT-аутентификацию, авторизацию и защиту маршрутов. В завершении раздела проведем практическое, unit, интеграционное и end-to-end тестирование проекта.
Модуль 2: «Интерактивное обучение: тесты, попытки, прогресс» мы расширим MVP интерактивной частью и перейдем от простого контента к активному обучению. Реализуем роли для авторов, студентов и управляющих пользователей, добавим сущности Question, AnswerOption и QuestionAttempt. Научимся поддерживать одиночный и множественный выбор ответов, фиксировать попытки прохождения тестов, рассчитывать результаты, баллы и статусы. Построим авторские сценарии создания тестов и пользовательские сценарии прохождения, добавим прогресс обучения как часть доменной модели и обсудим учебную мотивацию через баллы. Также реализуем persistence-слой интерактивного этапа, FastAPI-роуты, зависимости и схемы, после чего протестируем модуль вручную и с помощью автоматизированных тестов.
Модуль 3: «Кодовые задачи и Docker-runner» мы добавим в платформу практические задания и систему автоматической проверки решений. Начнем с домена простых задач: реализуем сущность Task, попытки решений, историю отправок, правила проверки, роли, владельцев и доступы. Затем перейдем к кодовым задачам: создадим сущность CodeTask, сценарии отправки кода, application-слой проверки и жизненный цикл результата. Настроим очередь и worker для асинхронной обработки, разработаем Docker-runner для безопасного исполнения пользовательского кода и сохранения артефактов проверки. Отдельно рассмотрим безопасность, отказоустойчивость, внешний брокер, реальную очередь и поддержку разных языков программирования. В конце раздела подключим FastAPI-слой, обновим учебный прогресс и протестируем этап задач вручную и автоматически.
Модуль 4: «Платформенные сценарии вокруг обучения» мы превратим проект в более полноценную образовательную платформу вокруг курсов, студентов и авторов. Реализуем жизненный цикл курса со статусами draft, published и archived, бизнес-сценарий публикации, каталог курсов и карточку курса. Добавим обложку, описание, сложность, теги, поиск и фильтрацию по темам, тегам и уровню сложности. После этого построим аналитику для студента и автора: завершение курса, баллы, слабые места, прохождение, сложные вопросы и задачи. Также реализуем рейтинги, отзывы, комментарии, обсуждения под лекциями и историю активности студента. В завершении раздела оптимизируем чтение данных с помощью индексов и кеширования контента.
Для кого этот курс
Начальные требования
- Базовое знание Python: функции, классы, ООП, работа с модулями
- Понимание основ HTTP и REST API
- Знание работы FastAPI, SQLAlchemy
- Базовое понимание асинхронности в Python желательно, но не обязательно
Желательно прохождение курса - FastAPI для начинающих, а так же курса - Продвинутый FastAPI для продолжающих, и курса - SQLAlchemy: практическая работа с базой данных в Python