- Dependency Injection (DI): организация кода с помощью связывания и развязывания его частей. Выбор инструмента Dependency-Injector.
- Проблемы с DI: изменчивость в разных версиях Python, влияние окружения на стабильную работу библиотеки, сложности с использованием шаблонного метода как паттерна проектирования, используя библиотеку.
- Нужен ли DI: критерии выбора, тестирование, выбор между wire и глобальным контейнером, применение ООП к модулям и функциям.
- Простой контейнер: понимание собственных потребностей от инструмента для построение DI-контейнера. Можно ли обойтись без библиотеки? Полезность самописного контейнера.
Доклад будет полезен тем, кто сталкивался с принципом Dependency Injection или хочет лучше понять принцип. Рассмотрим проблемы популярной библиотеки Dependency Injector на языке Python. Обсудим сложности, с которыми можно столкнуться при использовании этой библиотеки в реальном проекте. Я продемонстрирую, что нравится в этом инструменте и как его функциональность может меняться в разных версиях библиотеки и в зависимости от окружения. Вместе мы разберемся, какие возможности на самом деле нам необходимы от такого инструмента, и создадим простой собственный контейнер с простой реализацией.