sergweex
@sergweex
Вопрошающий программист

Используете ли вы в своей работе Dependency Injection?

DI позволяет использовать слабое связывание, но при этом усложняет код. В своей работе используете ли вы DI или предпочитаете не усложнять или за вас это решение принял кто-то другой (команда, прошлый разработчик)? И почему используете или не используете?
  • Вопрос задан
  • 959 просмотров
Пригласить эксперта
Ответы на вопрос 4
Rou1997
@Rou1997
При проектировании применяю в разумных пределах, когда есть возможность.

но при этом усложняет код

Главное - замедляет разработку, как и прочие меры, направленные на повышение гибкости.
Ответ написан
@Beltoev
Живу в своё удовольствие
В своей работе используете ли вы DI или предпочитаете не усложнять или за вас это решение принял кто-то другой (команда, прошлый разработчик)?

На работе используем. Исторически сложилось, что там писали свой контейнер, который так и остаётся.
В своих проектах использую DryIoc.

И почему используете или не используете?

Использую, потому что это:
  • Полный контроль над всеми зависимостями в корне приложения;
  • Наличие в приложении швов для тестирования;
  • Возможность замены отдельных модулей без необходимости переписывать +100500 зависимых участков приложения;
  • С ракурса современных контейнеров с автосвязыванием корневое приложение автоматически "подхватит" новый модуль


Тут главное не поддаться соблазну и не свести все плюсы в минусы, начав использовать тот же локатор сервисов
Ответ написан
Комментировать
DoctorStein
@DoctorStein
QNX, Linux, С++, С#, mono
но при этом усложняет код

Не соглашусь. DI предполагает, что код разбит на модули. Использование независимых модулей для различных задач упрощает и код и будущую его поддержку. А сложный код при желании всегда можно написать, и DI тут не виновато.

По вопросу - используем, в том числе и по моим решениям. Про пользу тут уже писали, а для нас ещё важно, к примеру, что бы на сервере Continous Integration изменение одной библиотеки не привело к пересборке полусотни других, зависящих от неё прямо или косвенно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы