Содержание курса
1. Архитектура Python-проекта
6 уроков
4
0
0м
0
Закрытый
1.1
Когда проект начинает разваливаться
↗
1
0
-
0
Закрытый
1.2
Разделение ответственности: кто за что отвечает
↗
1
0
-
0
Закрытый
1.3
Простые слои приложения
↗
1
0
-
0
Закрытый
1.4
Проектирование структуры проекта
↗
1
0
-
0
Закрытый
1.5
Архитектурные запахи и рефакторинг
↗
0
0
-
0
Закрытый
1.6
Мини-проект блока
↗
0
0
-
0
2. Функции глубже
6 уроков
4
0
0м
0
Закрытый
2.1
Функции как объекты и higher-order functions глубже
↗
1
0
-
0
Закрытый
2.2
Замыкания (closures) и функции-фабрики
↗
1
0
-
0
Закрытый
2.3
Практика closures: конфигурация поведения
↗
1
0
-
0
Закрытый
2.4
Декораторы глубже: надежные обертки
↗
1
0
-
0
Закрытый
2.5
Декораторы с параметрами и реальные кейсы
↗
0
0
-
0
Закрытый
2.6
Мини-проект блока
↗
0
0
-
0
3. Итераторы и генераторы
6 уроков
4
0
0м
0
Закрытый
3.1
Протокол итерации глубже
↗
1
0
-
0
Закрытый
3.2
Собственные итераторы и итерируемые классы
↗
1
0
-
0
Закрытый
3.3
Генераторы глубже и yield from
↗
0
0
-
0
Закрытый
3.4
Генераторные пайплайны
↗
1
0
-
0
Закрытый
3.5
itertools на практике
↗
1
0
-
0
Закрытый
3.6
Мини-проект блока
↗
0
0
-
0
4. Контекстные менеджеры
6 уроков
3
0
0м
0
Открытый
4.1
with как общий шаблон управления ресурсом
↗
0
0
-
0
Открытый
4.2
Класс-контекст: __enter__ и __exit__
↗
0
0
-
0
Открытый
4.3
contextlib и @contextmanager
↗
0
0
-
0
Открытый
4.4
Временные состояния и безопасные границы
↗
1
0
-
0
Открытый
4.5
Контекстное и транзакционное мышление
↗
1
0
-
0
Открытый
4.6
Мини-проект блока
↗
1
0
-
0
5. Продвинутое ООП и проектирование моделей
6 уроков
3
0
0м
0
Открытый
5.1
Хорошие и плохие объектные модели
↗
0
0
-
0
Открытый
5.2
Композиция как главный инструмент моделирования
↗
1
0
-
0
Открытый
5.3
ABC и общий интерфейс
↗
0
0
-
0
Открытый
5.4
Mixins и повторное использование поведения
↗
1
0
-
0
Открытый
5.5
dataclass глубже и value objects
↗
0
0
-
0
Открытый
5.6
Мини-проект блока
↗
1
0
-
0
6. Исключения, логирование и надежность
6 уроков
1
0
0м
0
Открытый
6.1
Исключения как часть архитектуры
↗
0
0
-
0
Открытый
6.2
Где ловить ошибку, а где пробрасывать выше
↗
0
0
-
0
Открытый
6.3
Свои исключения и иерархия ошибок
↗
0
0
-
0
Открытый
6.4
Логирование через logging
↗
0
0
-
0
Открытый
6.5
Retry, backoff, fail-fast и graceful degradation
↗
0
0
-
0
Открытый
6.6
Мини-проект блока
↗
1
0
-
0
7. Асинхронность: async, await и event loop
6 уроков
1
0
0м
0
Открытый
7.1
Зачем нужна асинхронность
↗
1
0
-
0
Открытый
7.2
async def, coroutine function и await
↗
0
0
-
0
Открытый
7.3
Event loop и переключение задач
↗
0
0
-
0
Открытый
7.4
Где async полезен, а где нет
↗
0
0
-
0
Открытый
7.5
Проектирование простого async-кода
↗
0
0
-
0
Открытый
7.6
Мини-проект блока
↗
0
0
-
0
8. Асинхронность на практике
6 уроков
0
0
0м
0
Открытый
8.1
Несколько async-задач и gather
↗
0
0
-
0
Открытый
8.2
Task orchestration и create_task
↗
0
0
-
0
Открытый
8.3
Timeouts и cancellation
↗
0
0
-
0
Открытый
8.4
Ограничение параллелизма через semaphore
↗
0
0
-
0
Открытый
8.5
Async API client и частичные сбои
↗
0
0
-
0
Открытый
8.6
Мини-проект блока
↗
0
0
-
0
9. Потоки, процессы и многозадачность
6 уроков
0
0
0м
0
Открытый
9.1
Concurrency vs parallelism: карта местности
↗
0
0
-
0
Открытый
9.2
Потоки: threading для ожидания и блокирующих библиотек
↗
0
0
-
0
Открытый
9.3
Процессы: multiprocessing для CPU-bound задач
↗
0
0
-
0
Открытый
9.4
GIL на человеческом уровне
↗
0
0
-
0
Открытый
9.5
concurrent.futures: удобный вход в pools
↗
0
0
-
0
Открытый
9.6
Мини-проект блока
↗
0
0
-
0
10. Производительность и профилирование
6 уроков
0
0
0м
0
Открытый
10.1
Почему нельзя оптимизировать без измерения
↗
0
0
-
0
Открытый
10.2
timeit и честное сравнение вариантов
↗
0
0
-
0
Открытый
10.3
Профилирование и поиск bottleneck
↗
0
0
-
0
Открытый
10.4
Типы bottleneck: алгоритм, структура данных, I/O, память
↗
0
0
-
0
Открытый
10.5
Кэширование, ленивость и разумные оптимизации
↗
0
0
-
0
Открытый
10.6
Мини-проект блока
↗
0
0
-
0
11. CLI, packaging и оформление взрослого инструмента
6 уроков
0
0
0м
0
Открытый
11.1
От скрипта к инструменту: зачем нужен CLI
↗
0
0
-
0
Открытый
11.2
CLI через argparse
↗
0
0
-
0
Открытый
11.3
Проектирование команд, subcommands и help
↗
0
0
-
0
Открытый
11.4
Конфигурация: аргументы, config file, env
↗
0
0
-
0
Открытый
11.5
Packaging, структура пакета и entry points
↗
0
0
-
0
Открытый
11.6
Мини-проект блока
↗
0
0
-
0
12. Финальные проекты
6 уроков
0
0
0м
0
Открытый
12.1
Как подходить к advanced Python-проекту
↗
0
0
-
0
Открытый
12.2
Проект 1 — асинхронный агрегатор источников
↗
0
0
-
0
Открытый
12.3
Проект 2 — конвейер обработки данных и логов
↗
0
0
-
0
Открытый
12.4
Проект 3 — CLI-инструмент для пакетной обработки
↗
0
0
-
0
Открытый
12.5
Выпускной интеграционный проект
↗
0
0
-
0
Открытый
12.6
Завершение курса и маршруты дальше
↗
0
0
-
0