Чему вы научитесь
- Объяснять, зачем нужен DI-контейнер, и сравнивать Dishka с альтернативами
- Проектировать граф зависимостей со скоупами и жизненным циклом объектов
- Создавать провайдеры через Provider и @provide, включая кастомные скоупы
- Реализовывать финализацию ресурсов через генераторы
- Применять provide_all, alias и AnyOf для абстракций и массовой регистрации
- Компоновать контейнер из нескольких провайдеров
- Интегрировать Dishka с FastAPI: setup_dishka, скоуп REQUEST, FromDishka
- Работать с async-контейнером и async-провайдерами
- Изолировать подсистемы через Components
- Тестировать сервисы с подменой зависимостей и in-memory реализациями
- Строить приложение с чистой слоистой архитектурой на Dishka
О курсе
Для кого этот курс
Начальные требования
Курс рассчитан на практикующих Python-разработчиков, но я постарался сделать вход максимально комфортным.
Вот что пригодится:
-
Опыт написания кода на Python — вы уверенно пишете функции и классы, понимаете ООП
-
Базовое знакомство с типизацией — аннотации типов,
typing,Optional/| None -
Понимание, как работают зависимости между классами — что один объект может использовать другой
Чего точно не нужно:
-
Опыта с DI-контейнерами — разберём с самых основ
-
Знания внутренностей Dishka — откроем по ходу курса
-
Продвинутых алгоритмов и математики — курс про архитектуру и практику
Если вы пишете на Python и хотите, чтобы код было проще поддерживать — вы в правильном месте. Всё остальное подтянется по ходу.
Преподаватели курса
Что вы получите
- Уверенное понимание DI и IoC-контейнеров
- Навык проектировать граф зависимостей со скоупами и финализацией
- Умение работать с абстракциями (alias, AnyOf) и Components
- Готовый паттерн интеграции Dishka с FastAPI и async-кодом
- Навык тестировать сервисы с подменой зависимостей без реальной инфраструктуры
- Собственное приложение с чистой архитектурой на Dishka