Практический курс по 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
— Научитесь писать ручки для CRUD операций, чтобы эффективно управлять данными в приложении
— Освоите валидацию данных с помощью Pydantic, чтобы гарантировать корректность входных данных
— Реализуете пагинацию через механизм зависимостей в FastAPI, чтобы удобно отображать большие объемы данных
3. Подключаем базу данных к проекту, изучаем ORM и SQL запросы
— Поймете, зачем нужны миграции и ORM, и как они упрощают работу с базами данных
— Подключите SQLAlchemy — самую популярную ORM на Python, чтобы легко взаимодействовать с базами данных
— Научитесь писать и запускать миграции, чтобы без проблем обновлять структуру данных и поддерживать базу данных в актуальном состоянии
— Реализуете паттерны Repository и Data Mapper, чтобы сделать код более чистым и поддерживаемым
4. Авторизация и аутентификация
— Поймете, как устроена авторизация в современных приложениях, чтобы обеспечить безопасность пользователей
— Познакомитесь с хэшированием паролей и JWT токенами для безопасного хранения и передачи данных
— Реализуете аутентификацию с помощью JWT токенов, чтобы создать надежную систему входа для вашего приложения
5. Продвинутая работа с базой данных и SQL
— Научитесь писать SQL-запросы с применением CTE, подзапросов, JOIN'ов и группировок для эффективной работы с данными
— Освоите внедрение many-to-many (M2M) связи в базе данных, чтобы организовать сложные отношения между таблицами
— Реализуете сложную бизнес-логику по бронированию отелей в вашем проекте
— Напишете собственный асинхронный контекстный менеджер, чтобы управлять ресурсами и повысить производительность приложения
6. Обзор кода реальных production проектов на FastAPI и Flask
— Узнаете, как другие разработчики реализуют код, чтобы расширить свои знания и подходы к программированию
— Изучите множество фишек написания проектов на FastAPI, чтобы использовать лучшие практики и улучшить качество вашего кода
— Поймете принципы построения архитектуры приложений на FastAPI, чтобы создавать масштабируемые и поддерживаемые решения
— Разовьете насмотренность благодаря разнообразию изученных проектов, что поможет легче ориентироваться в коде и адаптироваться к реальным задачам разработчика
7. Инструменты Production разработки: Кеширование (Redis) и фоновые задачи (Celery)
— Научитесь кэшировать данные через Redis, чтобы ускорить работу API и снизить нагрузку на базу данных
— Внедрите плагин для кэширования ручек в FastAPI, чтобы легко и эффективно добавить кэширование в проект
— Подключите Celery - инструмент для асинхронной обработки задач, чтобы управлять долгими процессами в фоновом режиме
— Реализуете фоновые задачи, чтобы не блокировать работу приложения и отправлять запросы на выполнение длительных задач в фоновом режиме
— Научитесь работать с файлами в FastAPI: принимать и обрабатывать файлы от пользователей для расширения функционала вашего приложения
8. Тестирование кода как в компаниях
— Покроете весь код тестами через pytest, самой популярной библиотеки для тестирования кода на Python
— Научитесь писать unit-тесты, интеграционные тесты и API тесты, чтобы обнаруживать ошибки в коде до того, как их увидят реальные пользователи
— Освоите написание фикстур и моков, чтобы тестировать отдельные части проекта, имитируя реальную нагрузку со стороны других сервисов
— Узнаете, как параметризировать тесты, чтобы учесть краевые случаи и сделать тесты более лаконичными и эффективными
9. Доведение проекта до production-ready состояния
— Узнаете, что такое линтер, форматтер и статический типизатор, и внедрите их в ваш проект, чтобы проверить качество кода до его отправки на сервер
— Поймете, как выстроить слоистую архитектуру, и реализуете ее в вашем проекте для лучшей структуры и масштабируемости
— Внедрите логирование, чтобы легче выявлять возможные ошибки и анализировать работу кода
— Добавите обработку ошибок во всех слоях приложения, чтобы пользователь получал понятные сообщения о причинах неполадок
— Посмотрите на реальный production-код, с которым автор работал больше года, чтобы улучшить вашу насмотренность и понять, как выглядят проекты в реальной разработке
— Познакомитесь с паттерном Command и научитесь использовать его для более гибкой и расширяемой архитектуры
10. Развертывание проекта на реальный сервер и настройка CI/CD
— Изучите Docker и Docker compose и развернете весь проект
— Арендуете собственный сервер
— Познакомите и внедрите Nginx, чтобы защитить проект от возможных атак и подключить надежное подключение https
— Развернете приложение на реальном сервере, чтобы добавить собственный работающий сайт в портфолио
— С нуля реализуете CI/CD для проекта, чтобы быстро и безошибочно вносить изменения в работающий проект
- Особенности курса
- Об авторе: стек, опыт и зарплата
- Программа и план курса
- Типичные проблемы начинающих разработчиков — Как я помогу вам побороться с ними
— Познакомитесь с автором курса и узнаете его подход к обучению
— Определитесь, подходит ли вам подача материала, чтобы учеба была комфортной и эффективной
— Поставите свои цели на курс, чтобы четко понимать, чего хотите достичь и как это сделать
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
— Научитесь писать unit-тесты, интеграционные тесты и API тесты, чтобы обнаруживать ошибки в коде до того, как их увидят реальные пользователи
— Освоите написание фикстур и моков, чтобы тестировать отдельные части проекта, имитируя реальную нагрузку со стороны других сервисов
— Узнаете, как параметризировать тесты, чтобы учесть краевые случаи и сделать тесты более лаконичными и эффективными
9. Доведение проекта до production-ready состояния
- Линтеры и форматтеры
- Статические типизаторы
- Обработка исключений в больших приложениях
- Логирование
- Новый слой в приложении — слой сервисов
- Обзор реального production кода
- Паттерн Command
— Узнаете, что такое линтер, форматтер и статический типизатор, и внедрите их в ваш проект, чтобы проверить качество кода до его отправки на сервер
— Поймете, как выстроить слоистую архитектуру, и реализуете ее в вашем проекте для лучшей структуры и масштабируемости
— Внедрите логирование, чтобы легче выявлять возможные ошибки и анализировать работу кода
— Добавите обработку ошибок во всех слоях приложения, чтобы пользователь получал понятные сообщения о причинах неполадок
— Посмотрите на реальный production-код, с которым автор работал больше года, чтобы улучшить вашу насмотренность и понять, как выглядят проекты в реальной разработке
— Познакомитесь с паттерном Command и научитесь использовать его для более гибкой и расширяемой архитектуры
10. Развертывание проекта на реальный сервер и настройка CI/CD
- Мотивация к изучению Docker и CI/CD
- Разворачиваем брокеров, базы данных и кэш через Docker
- Знакомство с Docker и написание Dockerfile
- Локальный разворот приложения через Docker
- Знакомство с Docker compose
- Аренда сервера и развертывание приложения на реальном сервере
- Подключение Nginx
- Подключение домена и SSL Сертификатов
- Настройка собственного CI/CD пайплайна
— Изучите Docker и Docker compose и развернете весь проект
— Арендуете собственный сервер
— Познакомите и внедрите Nginx, чтобы защитить проект от возможных атак и подключить надежное подключение https
— Развернете приложение на реальном сервере, чтобы добавить собственный работающий сайт в портфолио
— С нуля реализуете CI/CD для проекта, чтобы быстро и безошибочно вносить изменения в работающий проект
- Доступ ко всем материалам курса (видео + конспекты) на 9 мес
- Практические задания
- Проверка заданий по code review и развертыванию проекта куратором
https://artemshumeiko.ru/
Повтор складчины