О курсе: Мы начнём с объектно‑ориентированного программирования в 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. В результате вы получите цельное понимание того, как сочетать ООП, типизацию, асинхронность и архитектурные принципы в живом, развиваемом проекте. Чему вы научитесь: 1. Проектировать на ООП: классы, наследование, композиция 2. Использовать декораторы и метаклассы для расширения поведения 3. Писать асинхронный код 4. Управлять зависимостями проекта 5. Применять принципы SOLID и избегать антипаттернов 6. Работать с продвинутой типизацией: Generic, Protocols, TypedDict 7. Работать с Textual 8. Работать с venv Что будем писать: 1. Менеджер заметок TUI менеджер заменток с возможность создавать, импортировать и удалять заметки. Полноценное дерево навигации по вложенным папкам и отображение markdown 2. Мониторинг доступности сайтов TUI приложение для пониторинга доступности сайтов. Хранит url и интервалы проверки и отображает статусы на Dashboard Программа Спойлер Модуль 1 - Введение 1.1 Продвинутый Python 1.2 Как устроен курс 1.3 Обзор проекта 1.4 Проект домашних заданий 1.5 Обзор курсов 1.6 Работа на платформе 1.7 AI и тренажёры Модуль 2 - Настройка окружения 2.1 Настройка окружения 2.2 Установка Python MacOS 2.3 Установка Python Linux 2.4 Установка Python Windows 2.5 Pyenv 2.6 Настройки VSCode 2.7 Домашнее задание AI 2.8 Работа с gitflow Модуль 3 - Основы ООП 3.1 Класс и экземпляр 3.2 Пример класса 3.3 Атрибуты 3.4 Методы 3.5 self 3.6 init 3.7 Упражнение - Герой 3.8 Статические методы 3.9 Классовый метод 3.10 Встроенные методы 3.11 property 3.12 dataclass 3.13 Тест - Основы ООП 3.14 Занятие - Основы ООП 3.15 Тренажёр - Основы ООП 3.16 Домашнее задание - Основы ООП Модуль 4 - Декораторы 4.1 Что такое декоратор 4.2 Декораторы с аргументами 4.3 Декораторы классов 4.4 Декоратор с параметром 4.5 Упражнение - декоратор retry 4.6 Декоратор методов 4.7 wraps 4.8 Дескриптор 4.9 getattr и setattr 4.10 Упражнение — Декоратор limit 4.11 Классы декораторы 4.12 Тест - Декораторы 4.13 Занятие - Декораторы 4.14 Тренажёр - Декораторы 4.15 Домашнее задание - Декораторы Модуль 5 - Принципы ООП 5.1 О принципах ООП 5.2 Инкапсуляция 5.3 Наследование 5.4 Множественное наследование 5.5 Method Resolution Order 5.6 super 5.7 Упражнение - Курсы 5.8 Mixins 5.9 Полиморфизм 5.10 Композиция 5.11 Упражнение - Расчёт скидки 5.12 Protocol 5.13 Упражнение - Хранилище 5.14 Абстрактный класс 5.15 Тест - Принципы ООП 5.16 Занятие - Принципы ООП 5.17 Тренажёр - Принципы ООП 5.18 Домашнее задание - Принципы ООП Модуль 6 - SOLID и архитектура 6.1 О Solid 6.2 Single Responsibility Principle 6.3 Упражнение - Статистика учеников 6.4 Open Closed Principle 6.5 Упражнение - Уведомления 6.6 Liskov Substitution Principle 6.7 Упражнение - Оплата в рассрочку 6.8 Interface Segregation Principle 6.9 Упражнение - Методы оплат 6.10 Dependency Inversion Principle 6.11 Упражнение - Оповещения о низком остатке 6.12 Тест - SOLID и архитектура 6.13 Занятие - SOLID и архитектура 6.14 Тренажёр - SOLID и архитектура 6.15 Домашнее задание - SOLID и архитектура Модуль 7 - Работа под капотом 7.1 Архитектура Python 7.2 Pipeline компиляции 7.3 Eval Loop 7.4 Модель объектов 7.5 Slots 7.6 Память и сборка мусора 7.7 Исключения под капотом 7.8 Тест - Работа под капотом 7.9 Занятие - Работа под капотом 7.10 Домашнее задание - Работа под капотом Модуль 8 - Generics и typing 8.1 Обобщения 8.2 Callable 8.3 Упражнение - Работа с tuple 8.4 Optional 8.5 Упражнение - Safe методы 8.6 Generic Class 8.7 Упражнение - Репозиторий 8.8 Ограничения типов 8.9 Generic bound 8.10 Упражнение - Поиска по id 8.11 Union 8.12 TypeGuard 8.13 Упражнение - Модель события 8.14 Тест - Generics и typing 8.15 Занятие - Generics и typing 8.16 Тренажёр - Generics и typing 8.17 Домашнее задание - Generics и typing Модуль 9 - Асинхронное программирование 9.1 Зачем асинхронность 9.2 async await 9.3 gather 9.4 Event Loop 9.5 Асинхронные контекстные менеджеры 9.6 Упражнение - Параллельные запросы 9.7 wait и wait_for 9.8 Обработка ошибок 9.9 cancel 9.10 shield 9.11 Task vs Coroutine 9.12 Упражнение - Retry Coroutine 9.13 Тест - Асинхронное программирование 9.14 Отзыв о курсе 9.15 Занятие - Асинхронное программирование 9.16 Тренажёр - Асинхронное программирование 9.17 Домашнее задание - Асинхронное программирование Модуль 10 - Внешние зависимости 10.1 Внешние зависимости 10.2 PyPI 10.3 venv 10.4 pip 10.5 project toml 10.6 poetry 10.7 Упражнение - Подготовка проекта 10.8 scripts 10.9 Тест - Внешние зависимости 10.10 Занятие - Внешние зависимости 10.11 Домашнее задание - Внешние зависимости Модуль 11 - Textual 11.1 О проекте 11.2 Конфигурация 11.3 Первый экран 11.4 init py 11.5 Генераторы 11.6 ruff 11.7 Bindings 11.8 Контейнеры и стили 11.9 Первый виджет 11.10 Бизнес сущности 11.11 Паттерн репозитория 11.12 Тест - Textual 11.13 Домашнее задание - Textual Модуль 12 - Архитектура проекта 12.1 Получение папок 12.2 Упражнение - Удаление и создание 12.3 Dependency Injection 12.4 Загрузка папок 12.5 Упражнение - Репозиторий заметок 12.6 Обновление заметок 12.7 Упражнение - Отображение заметок 12.8 Выбор заметки 12.9 Загрузка заметки 12.10 Модальное окно 12.11 Обработка нажатий 12.12 httpx 12.13 Создание заметки 12.14 Удаление заметки 12.15 Развитие проекта 12.16 Домашнее задание - Архитектура проекта Модуль 13 - Заключение 13.1 Куда двигаться дальше 13.2 Собеседование с AI наставником 13.3 Финальное тестирование Тариф AI и тренажёры 1. Уроки и упражнения 2. Домашние задания 3. AI занятия на 2 месяца 4. Тренажёр с задачами