Программа и содержание
Практический курс по backend разработке. Тариф Только курс (2024)
Слив курса Практический курс по backend разработке (2024) [Тариф Только курс] [Артем Шумейко]
Курс для тех, кто:
Знает базу программирования на Python (переменные, классы) и хочет на практике освоить необходимый стек для получения первого оффера
Хочет перейти с другого Python-фреймворка на FastAPI, научиться работать с экосистемой сервисов и структурировать знания в backend разработке
Программа курса:
План курса и знакомство с автором
Введение в асинхронность. Почему ее везде используют.
Освоение FastAPI и основ Backend разработки.
Подключаем базу данных к проекту, изучаем ORM и SQL запросы.
Авторизация и аутентификация.
Продвинутая работа с базой данных и SQL.
Обзор кода реальных production проектов на FastAPI и Flask.
Инструменты Production разработки: Кеширование (Redis) и фоновые задачи (Celery).
Тестирование кода как в компаниях.
Доведение проекта до production-ready состояния.
Развертывание проекта на реальный сервер и настройка CI/CD.
Программа подробно:
0. План курса и знакомство с автором
Особенности курса
Об авторе: стек, опыт и зарплата
Программа и план курса
Типичные проблемы начинающих разработчиков — Как я помогу вам побороться с ними
Результаты модуля:
— Познакомитесь с автором курса и узнаете его подход к обучению
— Определитесь, подходит ли вам подача материала, чтобы учеба была комфортной и эффективной
— Поставите свои цели на курс, чтобы четко понимать, чего хотите достичь и как это сделать
1. Введение в асинхронность. Почему ее везде используют
Асинхронность: Теоретический блок
Асинхронность: Практический блок
Результаты модуля:
— Поймете, как работает асинхронность в веб-приложениях, чтобы обрабатывать множество запросов одновременно
— Научитесь писать асинхронный код через async/await, чтобы в разы ускорить работу вашего приложения
2. Освоение FastAPI и основ Backend разработки
Что такое FastAPI. Спрос на рынке труда и мотивация к изучению
Установка, запуск, написание первых API ручек
Разбор всех HTTP методов и первый роутер
Валидация данных с Pydantic
Результаты модуля:
— Напишете и запустите приложение на FastAPI, современном фреймворке для создания API
— Научитесь писать ручки для CRUD операций, чтобы эффективно управлять данными в приложении
— Освоите валидацию данных с помощью Pydantic, чтобы гарантировать корректность входных данных
— Реализуете пагинацию через механизм зависимостей в FastAPI, чтобы удобно отображать большие объемы данных
3. Подключаем базу данных к проекту, изучаем ORM и SQL запросы
Зачем нужны базы данных. Спрос на рынке труда и мотивация к изучению
Модели данных и миграции с Alembic
Работа с базой данных через SQLAlchemy ORM
Паттерн Репозиторий: изучение и внедрение
Паттерн DataMapper: изучение и внедрение
Результаты модуля:
— Поймете, зачем нужны миграции и ORM, и как они упрощают работу с базами данных
— Подключите SQLAlchemy — самую популярную ORM на Python, чтобы легко взаимодействовать с базами данных
— Научитесь писать и запускать миграции, чтобы без проблем обновлять структуру данных и поддерживать базу данных в актуальном состоянии
— Реализуете паттерны Repository и Data Mapper, чтобы сделать код более чистым и поддерживаемым
4. Авторизация и аутентификация
Мотивация к изучению авторизации и аутентификации
Регистрация пользователей
Знакомство и использование JWT токена
Защищенные API ручки, аутентификация и авторизация через cookie
Результаты модуля:
— Поймете, как устроена авторизация в современных приложениях, чтобы обеспечить безопасность пользователей
— Познакомитесь с хэшированием паролей и JWT токенами для безопасного хранения и передачи данных
— Реализуете аутентификацию с помощью JWT токенов, чтобы создать надежную систему входа для вашего приложения
5. Продвинутая работа с базой данных и SQL
Расширенные возможности работы с SQL-запросами
Перенос сырых запросов в SQLAlchemy
Реализация M2M связей в базе данных и приложении
Результаты модуля:
— Научитесь писать SQL-запросы с применением CTE, подзапросов, JOIN'ов и группировок для эффективной работы с данными
— Освоите внедрение many-to-many (M2M) связи в базе данных, чтобы организовать сложные отношения между таблицами
— Реализуете сложную бизнес-логику по бронированию отелей в вашем проекте
— Напишете собственный асинхронный контекстный менеджер, чтобы управлять ресурсами и повысить производительность приложения
6. Обзор кода реальных production проектов на FastAPI и Flask
Код-ревью других FastAPI проектов
Изучение частых ошибок при написании проектов на FastAPI
Паттерн Репозиторий
Разбор обработки исключений в других проектах
Разбор работы с базой данных в других проектах
Разбор преимуществ и недостатков архитектуры, реализованной в разных проектах варианты улучшения этих подходов
Результаты модуля:
— Узнаете, как другие разработчики реализуют код, чтобы расширить свои знания и подходы к программированию
— Изучите множество фишек написания проектов на FastAPI, чтобы использовать лучшие практики и улучшить качество вашего кода
— Поймете принципы построения архитектуры приложений на FastAPI, чтобы создавать масштабируемые и поддерживаемые решения
— Разовьете насмотренность благодаря разнообразию изученных проектов, что поможет легче ориентироваться в коде и адаптироваться к реальным задачам разработчика
7. Инструменты Production разработки: Кеширование (Redis) и фоновые задачи (Celery)
Мотивация к изучению Redis и кэширования
Написание собственного класса для кэширования
Использование плагина для кэширования API
Фоновые отложенные задачи с Celery и Celery Beat
Работа с файлами в FastAPI
Фоновые задачи в FastAPI
Результаты модуля:
— Научитесь кэшировать данные через Redis, чтобы ускорить работу API и снизить нагрузку на базу данных
— Внедрите плагин для кэширования ручек в FastAPI, чтобы легко и эффективно добавить кэширование в проект
— Подключите Celery - инструмент для асинхронной обработки задач, чтобы управлять долгими процессами в фоновом режиме
— Реализуете фоновые задачи, чтобы не блокировать работу приложения и отправлять запросы на выполнение длительных задач в фоновом режиме
— Научитесь работать с файлами в FastAPI: принимать и обрабатывать файлы от пользователей для расширения функционала вашего приложения
8. Тестирование кода как в компаниях
Написание unit-тестов
Написание интеграционных тестов
Первые фикстуры и знакомство с моками
Тестирование API
Результаты модуля:
— Покроете весь код тестами через pytest, самой популярной библиотеки для тестирования кода на Python
— Научитесь писать uni