Upgrade to Pro — share decks privately, control downloads, hide ads and more …

MoscowPython Meetup №80 - Алексей Панаэтов

MoscowPython Meetup №80 - Алексей Панаэтов

Алексей Панаэтов (Whoosh, Руководитель департамента).

Расскажем про принцип Dependency Injection (DI).
На конкретных примерах покажем как правильно его использовать в ваших сервисах и какие выгоды он принесёт.

Видео: https://moscowpython.ru/meetup/80/why-use-dependency-injection/

MoscowPython: http://moscowpython.ru
Курсы Learn Python: http://learn.python.ru
Moscow Python Podcast: http://podcast.python.ru

Moscow Python Meetup

January 24, 2023
Tweet

More Decks by Moscow Python Meetup

Other Decks in Programming

Transcript

  1. Неявные зависимости - это фу! Неявные зависимости делают код и

    жизнь разработчика сложнее. 1. код сложно читать. 2. код сложно менять; 3. юнит-тесты больно писать.
  2. Зависимость через default-ное значение Минусы: 1. Объект MailServer создаётся в

    момент импорта модуля. 2. Billing всё равно знает о том, как создавать MailServer. 3. Возможны циклические зависимости.
  3. Зависимость через default-ное значение и фабрику Минусы: 1. На каждый

    объект нужно создавать фабрику. 2. Billing всё равно знает о том, как создавать MailServer.
  4. DI - это хорошо 1. Объекты в коде связаны явно,

    зависимости легко находить и менять. 2. Мокать зависимости в юнит-тестах максимально просто! 3. Проектировать систему становится проще.