Тёмный

Dependency Injection в Python. Александр Шибаев, Тинькофф 

Antida software
Подписаться 1,3 тыс.
Просмотров 4,9 тыс.
50% 1

В нашем коде существует большое количество зависимостей. Большинство разработчиков не запариваются, как ими управлять, и иногда это приводит к dependency hell - распространенному анти-паттерну разработки. Чтобы не оказаться в таком аду, полезно знать, какие существуют подходы в разработке кода.
Популярные библиотеки на Python используют такие подходы, как threadlocal переменные или singleton объекты. Команда Тинькофф выбрала путь, который популярен в других языках программирования, и наработала на нашем большом проекте опыт, которым не стыдно поделиться. Речь о dependency injection.
В своем докладе Александр разобрал:
- как использовать dependency injection контейнер в python c библиотекой punq;
- как прикрутить ее к pydantic и fastapi;
- каким образом это упрощает разработку и помогает в написании кода с аннотациями типов.
Презентация: speakerdeck.com/pychel/alieks...

Наука

Опубликовано:

 

14 июн 2021

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 6   
@ivantitov1722
@ivantitov1722 2 года назад
К докладам необходимо готовиться, а также использовать общепринятую терминологию вместо своих "эта штука, бла-бла". Тема DI не раскрыта, а повествование максимально нелинейное (хотелось бы от общего к частному).
@yuriyl1747
@yuriyl1747 Месяц назад
Решение: все функции пишутся отдельно. В каждую функцию можно передать некий Callable с возвращаемым типом данных (например интерфейс/абстрактное придставление), во время тестов вызывать функцию с аргументом который возвращает конкретный объект и работаете с ним. Код всё же должен быть выразительным. Непонятно какую проблему решаете в итоге - код выглядит крайне недружелюбно. Не путайте DI в FastAPI - там другая история.
@nikitasid4947
@nikitasid4947 4 месяца назад
Бодро & мутно.
@vadim-kv
@vadim-kv 2 года назад
Какой то сумбурный доклад. Смысл DI так и не объяснили. Фактически вся буза из за "регистрировать объект вне класса или внутри". Имхо чем проще читается код - тем легче. Ушел с пхп на питон именно из за простоты кода. Так как первый стал какой то дикой кучей абстракций и наследования.
@andrewmoon181
@andrewmoon181 2 года назад
Пайтон супер для MVP и микросервисов (именно микро). НО, если проект вышел из фазы MVP его переписывают на серьезном языке. НО, так как переписывать никто не хочет, да и затратно это, нужно думать что с этим проектом дальше делать. И вот тут на помощь приходять паттерны с Джавы и других кроваво-энтерпрайзных языков. Итак, как итог - ДИ - он для средних и больших проектов. Если у вас несколько КРАД моделей - это конечно же лишнее усложнение. НО, если на микросервисе/монолите от 5-10 человек, он активно развиваеться 2-3-5 лет, то только паттерны помогут его не угробить. Больше здесь: cosmicpython . com / book / preface . html
Далее
Dependency INVERSION vs Dependency INJECTION in Python
17:51
Why You Should Always Help Others ❤️
00:40
Просмотров 2,3 млн
ОВР Шоу: Русская баня @TNT_television
12:06
UZmir & Mira - Qani qani (Snippet)
00:26
Просмотров 526 тыс.
Dependency Injection простыми словами
18:17
Dependency Injection, The Best Pattern
13:16
Просмотров 730 тыс.
Dependency Injection Explained in 7 Minutes
7:11
Просмотров 47 тыс.
как спасти усилитель?
0:35
Просмотров 514 тыс.
iphone fold ? #spongebob #spongebobsquarepants
0:15
Просмотров 248 тыс.
Плохие и хорошие видеокарты
1:00