Полный продвинутый курс по Python: ООП, SOLID, декораторы, Generic, Асинхронное программирование.
Мы начнём с объектно‑ориентированного программирования в Python: разберём классы, экземпляры, атрибуты и методы, self и init, а также статические и классовые методы, property и dataclass. Параллельно вы освоите декораторы — от простых функций‑декораторов и декораторов с аргументами до декораторов методов и классов, дескрипторов и использования getattr/setattr. На этом фундаменте мы перейдём к принципам ООП и SOLID.
Далее мы заглянем «под капот» Python и разберёмся, как устроены архитектура интерпретатора, пайплайн компиляции, цикл выполнения, модель объектов, slots, управление памятью и обработка исключений. Отдельный блок будет посвящён системе типов и обобщениям: вы научитесь использовать Generics, Callable, Optional, Union, ограничения типов и TypeGuard, а также строить типобезопасные репозитории и модели. После этого перейдём к асинхронному программированию: async/await, event loop, корутины и задачи, gather, wait, wait_for, асинхронные контекстные менеджеры, обработка ошибок, отмена и защита задач.
В завершение мы применим всё это в архитектуре реального проекта. На примере приложения с заметками и Textual вы создадите экраны и виджеты, опишете бизнес‑сущности, реализуете паттерн репозитория и Dependency Injection, организуете загрузку, отображение, создание и удаление заметок, а также работу с сетью через httpx. В результате вы получите цельное понимание того, как сочетать ООП, типизацию, асинхронность и архитектурные принципы в живом, развиваемом проекте.
Чему вы научитесь:
- Проектировать на ООП: классы, наследование, композиция
- Использовать декораторы и метаклассы для расширения поведения
- Писать асинхронный код
- Управлять зависимостями проекта
- Применять принципы SOLID и избегать антипаттернов
- Работать с продвинутой типизацией: Generic, Protocols, TypedDict
- Работать с Textual
- Работать с venv
Что будем писать:
- Менеджер заметок
- TUI менеджер заменток с возможность создавать, импортировать и удалять заметки. Полноценное дерево навигации по вложенным папкам и отображение markdown2. Мониторинг доступности сайтов
- TUI приложение для пониторинга доступности сайтов. Хранит url и интервалы проверки и отображает статусы на Dashboard
Программа курса
Модуль — Введение
- Продвинутый Python
- Как устроен курс
- Обзор проекта
- Проект домашних заданий
- Обзор курсов
- Работа на платформе
- AI и тренажёры
Модуль — Настройка окружения
- Настройка окружения
- Установка Python MacOS
- Установка Python Linux
- Установка Python Windows
- Pyenv
- Настройки VSCode
- Домашнее задание AI
- Работа с gitflow
Модуль — Основы ООП
- Класс и экземпляр
- Пример класса
- Атрибуты
- Методы
- self
- init
- Упражнение — Герой
- Статические методы
- Классовый метод
- Встроенные методы
- property
- dataclass
- Тест — Основы ООП
- Занятие — Основы ООП
- Тренажёр — Основы ООП
- Домашнее задание — Основы ООП
Модуль — Декораторы
- Что такое декоратор
- Декораторы с аргументами
- Декораторы классов
- Декоратор с параметром
- Упражнение — декоратор retry
- Декоратор методов
- wraps
- Дескриптор
- getattr и setattr
- Упражнение — Декоратор limit
- Классы декораторы
- Тест — Декораторы
- Занятие — Декораторы
- Тренажёр — Декораторы
- Домашнее задание — Декораторы
Модуль — Принципы ООП
- О принципах ООП
- Инкапсуляция
- Наследование
- Множественное наследование
- Method Resolution Order
- super
- Упражнение — Курсы
- Mixins
- Полиморфизм
- Композиция
- Упражнение — Расчёт скидки
- Protocol
- Упражнение — Хранилище
- Абстрактный класс
- Тест — Принципы ООП
- Занятие — Принципы ООП
- Тренажёр — Принципы ООП
- Домашнее задание — Принципы ООП
Модуль — SOLID и архитектура
- О Solid
- Single Responsibility Principle
- Упражнение — Статистика учеников
- Open Closed Principle
- Упражнение — Уведомления
- Liskov Substitution Principle
- Упражнение — Оплата в рассрочку
- Interface Segregation Principle
- Упражнение — Методы оплат
- Dependency Inversion Principle
- Упражнение — Оповещения о низком остатке
- Тест — SOLID и архитектура
- Занятие — SOLID и архитектура
- Тренажёр — SOLID и архитектура
- Домашнее задание — SOLID и архитектура
Модуль — Работа под капотом
- Архитектура Python
- Pipeline компиляции
- Eval Loop
- Модель объектов
- Slots
- Память и сборка мусора
- Исключения под капотом
- Тест — Работа под капотом
- Занятие — Работа под капотом
- Домашнее задание — Работа под капотом
Модуль — Generics и typing
- Обобщения
- Callable
- Упражнение — Работа с tuple
- Optional
- Упражнение — Safe методы
- Generic Class
- Упражнение — Репозиторий
- Ограничения типов
- Generic bound
- Упражнение — Поиска по id
- Union
- TypeGuard
- Упражнение — Модель события
- Тест — Generics и typing
- Занятие — Generics и typing
- Тренажёр — Generics и typing
- Домашнее задание — Generics и typing
Модуль — Асинхронное программирование
- Зачем асинхронность
- async await
- gather
- Event Loop
- Асинхронные контекстные менеджеры
- Упражнение — Параллельные запросы
- wait и wait_for
- Обработка ошибок
- cancel
- shield
- Task vs Coroutine
- Упражнение — Retry Coroutine
- Тест — Асинхронное программирование
- Отзыв о курсе
- Занятие — Асинхронное программирование
- Тренажёр — Асинхронное программирование
- Домашнее задание — Асинхронное программирование
Модуль — Внешние зависимости
- Внешние зависимости
- PyPI
- venv
- pip
- project toml
- poetry
- Упражнение — Подготовка проекта
- scripts
- Тест — Внешние зависимости
- Занятие — Внешние зависимости
- Домашнее задание — Внешние зависимости
Модуль — Textual
- О проекте
- Конфигурация
- Первый экран
- init py
- Генераторы
- ruff
- Bindings
- Контейнеры и стили
- Первый виджет
- Бизнес сущности
- Паттерн репозитория
- Тест — Textual
- Домашнее задание — Textual
Модуль — Архитектура проекта
- Получение папок
- Упражнение — Удаление и создание
- Dependency Injection
- Загрузка папок
- Упражнение — Репозиторий заметок
- Обновление заметок
- Упражнение — Отображение заметок
- Выбор заметки
- Загрузка заметки
- Модальное окно
- Обработка нажатий
- httpx
- Создание заметки
- Удаление заметки
- Развитие проекта
- Домашнее задание — Архитектура проекта
Модуль — Заключение
- Куда двигаться дальше
- Собеседование с AI наставником
- Финальное тестирование









