Информация об изменениях

Сообщение Re[4]: О пользе Dependency Injection от 13.01.2021 8:32

Изменено 13.01.2021 9:04 Министр Промышленности из Minecraft'а

Re[4]: О пользе Dependency Injection
спасибо за содержательный ответ


МП>>так а зачем вообще делать dependency injection?


AA>Уменьшить связанность компонентов.


принимается


AA>Повысить гибкость поведения. клиент просит интерфейс, а в конфиге можно указать реализацию.


не надо так делать!
если очень надо, то можно
но это же несёт уже упомянутые мной издержки

уже со времён WCF сервисов заметил, что служность конфигурирования зачастую превышает сложность кодирования


AA>Идеальная система настолько модульна, что можно в рантайме выгружать и загружать модули


это красиво, но не безопасно
угроза со стороны расщепления внимания
выгрузка и развёртывание — и так напряженный момент
в идеале она должна сводиться к аккуратному копированию файлов
а вы предлагаете в рантайме мутить сборками


AA>(такое есть в блэкбокс — можно выгрузить любую библиотеку если нет активных ссылок).


если это делается автоматически, то это плюс
если об этом надо думать — это минус


AA>>>Какой велосипед предлагаете взамен?

AA>ПС. не ответили на мой вопрос.

я не предлагаю велосипедов, вполне можно использовать популярные DI фреймворки там где это реально необходимо
а реальная необходимость бывает редко и всего в 2-3 местах системы
я видел что часто суют прочто чтобы было
это конечно боль программных проектов — разработчики тренирубтся за счет работодателя реально в ущерб энтропии проекта

но когда ещё начинают требовать — это на мой взгляд невменяемость сознания
Re[4]: О пользе Dependency Injection
спасибо за содержательный ответ


МП>>так а зачем вообще делать dependency injection?


AA>Уменьшить связанность компонентов.


принимается


AA>Повысить гибкость поведения. клиент просит интерфейс, а в конфиге можно указать реализацию.


не надо так делать!
если очень надо, то можно
но это же несёт уже упомянутые мной издержки

уже со времён WCF сервисов заметил, что сложность конфигурирования зачастую превышает сложность кодирования


AA>Идеальная система настолько модульна, что можно в рантайме выгружать и загружать модули


это красиво, но не безопасно
угроза со стороны расщепления внимания
выгрузка и развёртывание — и так напряженный момент
в идеале она должна сводиться к аккуратному копированию файлов
а вы предлагаете в рантайме мутить сборками


AA>(такое есть в блэкбокс — можно выгрузить любую библиотеку если нет активных ссылок).


если это делается автоматически, то это плюс
если об этом надо думать — это минус


AA>>>Какой велосипед предлагаете взамен?

AA>ПС. не ответили на мой вопрос.

я не предлагаю велосипедов, вполне можно использовать популярные DI фреймворки там где это реально необходимо
а реальная необходимость бывает редко и всего в 2-3 местах системы
я видел что часто суют прочто чтобы было
это конечно боль программных проектов — разработчики тренирубтся за счет работодателя реально в ущерб энтропии проекта

но когда ещё начинают требовать — это на мой взгляд невменяемость сознания