19.4Kпросмотров
3 апреля 2024 г.
📷 ФотоScore: 21.3K
Dishka - IoC-контейнер для Python Когда мы следуем подходу Dependency Injection, а особенно - слоистой архитектуре, у нас образуется отдельная группа функций и классов, выполняющих только одну задачу - создание других объектов. Такой код лучше держать поближе к main, так как он связывает воедино разные части приложения и связан с конфигурацией запуска. В сложном приложении такой компонент может содержать большое количество функций, контролировать как создание, так и корректную очистку объектов и, что самое главное, их взаимосвязь. Для упрощения работы с такими фабриками придумали отдельный тип библиотек - IoC-контейнеры (DI-фреймворки). В Python меня долго не устраивали существующие контейнеры и я решил сделать свой: Хочу представить вам Dishka 1.0 Цель этого проекта - предоставить простой и удобный IoC-контейнер, который сможет забрать всю работу с зависимостями. Мне кажется, на текущий момент это самый функциональный вариант контейнера, имеющий при этом самое простое API. • Вы можете использовать его с любым фреймворком, но для некоторых мы уже подготовили хелперы • Для создания зависимости можно указать отдельную функцию или использовать init класса • Зависимости имеют ограниченное время жизни (скоуп) и вы сами управляете им • Зависимости кэшируются, поэтому один и тот же объект может быть переиспользован пока он жив. Так можно передать одно соединение с БД в несколько гейтвеев • Фабрики зависимостей можно группировать в классы и компоненты, что позволяет делать контейнер модульным • Можно декорировать объекты, использовать один объект для нескольких типов • При старте проверяется корректность конфигурации контейнера, что позволяет исключить многие ошибки Что значит версия 1.0? У библиотеки было 9 промежуточных релизов, мы рады объявить, что закончена вся работа по стабилизации её интерфейса и исправлению ошибок. И у нас есть планы по развитию, уникальные фичи сами себя не напишут. Будем рады новым пользователям, багрепортам, запросам фич и звездам на гитхабе. Видео с Podlodka: http://www.youtube.com/watch?v=gWOBaZ3I4gc • Github • Pypi • Документация
19.4K
просмотров
2104
символов
Нет
эмодзи
Да
медиа

Другие посты @advice17

Все посты канала →