powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Dependency injection. Как скрыть внутренние реализации ?
25 сообщений из 58, страница 2 из 3
Dependency injection. Как скрыть внутренние реализации ?
    #39287253
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttwinsky!эм... давайте определимся. мы говорим о dependency inversion principle или о паттерне dependency injection?

Мы говорим об DI, который в свою очередь является формой IoC в реализации. Смысл говорить о принципах не применительно к коду? Так вернёся к вопросу. Для чего нужен DI?
еще раз, на доступном языке, че за DI? :D
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287258
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!еще раз, на доступном языке, че за DI? :D

Т.е. ответа не будет? Хех, ну и ладенько.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287259
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttwinsky!эм... давайте определимся. мы говорим о dependency inversion principle или о паттерне dependency injection?

Мы говорим об DI, который в свою очередь является формой IoC в реализации. Смысл говорить о принципах не применительно к коду? Так вернёся к вопросу. Для чего нужен DI?
ну и, используя ваше же тактику:
я не знаю, для чего нужен DI (чтобы тут не имелось в виду). объясните мне пожалуйста.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287263
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttwinsky!еще раз, на доступном языке, че за DI? :D

Т.е. ответа не будет? Хех, ну и ладенько.
нет, конечно.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287265
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!я не знаю, для чего нужен DI (чтобы тут не имелось в виду). объясните мне пожалуйста.

Конкретизируйте свои вопросы. Это я хотел услышать от вас, что такое DI и для чего он нужен. Вы ответа не знаете, но зачем-то ввязались в спор.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287271
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttwinsky!я не знаю, для чего нужен DI (чтобы тут не имелось в виду). объясните мне пожалуйста.

Конкретизируйте свои вопросы. Это я хотел услышать от вас, что такое DI и для чего он нужен. Вы ответа не знаете, но зачем-то ввязались в спор.
а я и не утверждал, что знаю. я просто молодой джун, вот пытался использовать dependency injection, наткнулся на ваш посо, где вы утверждаете, что нужно максимально избегать использования dependency injection, максимально для меня - это не использовать вовсе. но конкретезировать вы почему-то отказались (ну фразы "этого объяснять не нужно" и т.д.), начав забрасывать меня контрвопросами, достаточно неумными, кстати, мне это даже как джуну видно. уж простите.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287526
ioc_ioc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно так, все записхать сразу в конечном проекте. Есть свои плюсы - тестирование. Но это не модульность. Хотя слои нарезаны, слабая связность (за исклювением конечного проекта) обеспечена
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287528
ioc_ioc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А можно так. Модульность тут рулит просто безгранично. И прикурить на этом не хило (или перейти на Java Spring)
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287531
ioc_ioc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хвост, кажется об этом говорил, вначале топика
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39287534
ioc_ioc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕсли что-то делается только внутри одного модуля и не выходит наружу, то в таких случаях лучше вообще избегать использования контейнера.

можешь опытом поделиться, плиз. я пока плохо себе это представляю.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288026
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttМы говорим об DI, который в свою очередь является формой IoC в реализации.DI может существовать и быть полезным без IoC, не так ли?
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288345
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVosttМы говорим об DI, который в свою очередь является формой IoC в реализации.DI может существовать и быть полезным без IoC, не так ли?

http://sergeyteplyakov.blogspot.ru/2014/11/di-vs-dip-vs-ioc.html
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288353
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,

Сейчас с DI происходит примерно тоже самое, что с ООП много лет назад. Доходит до истерии, на собеседованиях главенствующее положение занимают вопросы по DI. Многие разработчики тотально и категорически впадают в крайности по принципу «масло кашей не испортишь», ко всем классам лепят тень-интерфейсы и регают в контейнере. Идёт война контейнеров. В общем, ещё пару годков и уляжется. Трупы склюют вороны.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288517
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей Кпропущено...
DI может существовать и быть полезным без IoC, не так ли?

http://sergeyteplyakov.blogspot.ru/2014/11/di-vs-dip-vs-ioc.html
мне показалось, может, но Алексей задал риторический вопрос..
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288521
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttАлексей К,

Сейчас с DI происходит примерно тоже самое, что с ООП много лет назад. Доходит до истерии, на собеседованиях главенствующее положение занимают вопросы по DI. Многие разработчики тотально и категорически впадают в крайности по принципу «масло кашей не испортишь», ко всем классам лепят тень-интерфейсы и регают в контейнере. Идёт война контейнеров. В общем, ещё пару годков и уляжется. Трупы склюют вороны.
может быть. но говорить, что DI нужно избегать где только можно, я бы не стал. как и ООП кстати :D
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288525
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!hVosttАлексей К,

Сейчас с DI происходит примерно тоже самое, что с ООП много лет назад. Доходит до истерии, на собеседованиях главенствующее положение занимают вопросы по DI. Многие разработчики тотально и категорически впадают в крайности по принципу «масло кашей не испортишь», ко всем классам лепят тень-интерфейсы и регают в контейнере. Идёт война контейнеров. В общем, ещё пару годков и уляжется. Трупы склюют вороны.
может быть. но говорить, что DI нужно избегать где только можно, я бы не стал. как и ООП кстати :D
DI контейнеры нужно применять в 3 случаях.
1. если используешь внешние сервисы
2. если делаешь поддержку плагинов
3. если пишешь книгу или статью в блог и хочешь показаться офигенно крутым чуваком
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288528
winsky!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЕвгенийВwinsky!пропущено...

может быть. но говорить, что DI нужно избегать где только можно, я бы не стал. как и ООП кстати :D
DI контейнеры нужно применять в 3 случаях.
1. если используешь внешние сервисы
2. если делаешь поддержку плагинов
3. если пишешь книгу или статью в блог и хочешь показаться офигенно крутым чуваком
аминь
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288575
Фотография skyANA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!hVosttАлексей К,

Сейчас с DI происходит примерно тоже самое, что с ООП много лет назад. Доходит до истерии, на собеседованиях главенствующее положение занимают вопросы по DI. Многие разработчики тотально и категорически впадают в крайности по принципу «масло кашей не испортишь», ко всем классам лепят тень-интерфейсы и регают в контейнере. Идёт война контейнеров. В общем, ещё пару годков и уляжется. Трупы склюют вороны.
может быть. но говорить, что DI нужно избегать где только можно, я бы не стал
А вот в Stack Overflow избегают полностью в угоду производительности.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288641
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVostt... ко всем классам лепят тень-интерфейсы и регают в контейнере.Ну я же пишу выше, что DI-контейнер не обязывает описывать интерфейсы там, где они не нужны. Он и без них достаточно полезен.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288642
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!ЕвгенийВпропущено...

DI контейнеры нужно применять в 3 случаях.
1. если используешь внешние сервисы
2. если делаешь поддержку плагинов
3. если пишешь книгу или статью в блог и хочешь показаться офигенно крутым чуваком
аминь+1
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288651
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
winsky!может быть. но говорить, что DI нужно избегать где только можно, я бы не стал. как и ООП кстати :D

В ООП аналогично, понадобились многие года, чтобы понять, что надо при любой возможности избегать наследования. А как было раньше, на заре ООП? Наследование! Только наследование! Возможно некоторым тоже надо за много лет собрать как можно ударов граблями по своему твёрдому лбу, чтобы уяснить для себя, что DI не панацея и не решает всех проблем архитектуры и что во многих случаях без него лучше обойтись.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288653
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей КhVostt... ко всем классам лепят тень-интерфейсы и регают в контейнере.Ну я же пишу выше, что DI-контейнер не обязывает описывать интерфейсы там, где они не нужны. Он и без них достаточно полезен.

Вот именно! Если с интерфейсами как-то понятен смысл DI, то без них это уже DI ради DI, начинает казаться, что создание инстансов всех классов стоит переложить на плечи контейнера. Ну как же, он же все зависимости подоткнёт.

Что в итоге? После нескольких месяцев разработки с таким подходом:

1) прочитать и понять программу становится крайне затруднительным делом
2) контролировать поток выполнения программы становится всё сложнее и сложнее
3) производительность, найдя узкое место, решить проблему узкого горлышка в сетях паутины DI может оказаться трудоёмкой задачей

Речь идёт не об полном отказе от DI, а про грамотное использование инструмента, есть другие более эффективные решения, о которых одни забывают, а другие просто тупо не знают, прикрываясь одним единственным заученным паттерном.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288657
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЕсли с интерфейсами как-то понятен смысл DI, то без них это уже DI ради DIDI ради:

1. Области времени жизни.
2. Централизованное конфигурирование создания объектов.
3. Компактность кода.

Ниже пример из жизни, чего можно избежать при использовании ди-контейнера:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
        static Installation CreateInstallation(Log log)
        {
            var installation = new Installation();
            var appDbConnectionFactory = new AppDbConnectionFactory();
            var appDbRepository = new AppDbRepository();
            var configuration = new Configuration();
            var uiConfiguration = new UIConfiguration();
            var consoleHelper = new ConsoleHelper();
            var environmentParameters = new EnvironmentParameters();

            installation.Log = log;
            installation.AppDbConnectionFactory = appDbConnectionFactory;
            installation.AppDbRepository = appDbRepository;
            installation.Configuration = configuration;
            installation.UIConfiguration = uiConfiguration;
            installation.ConsoleHelper = consoleHelper;

            appDbRepository.Configuration = configuration;

            uiConfiguration.ConsoleHelper = consoleHelper;
            uiConfiguration.EnvironmentParameters = environmentParameters;

            return installation;
        }
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288658
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttЧто в итоге? После нескольких месяцев разработки с таким подходом:

1) прочитать и понять программу становится крайне затруднительным делом
2) контролировать поток выполнения программы становится всё сложнее и сложнее
3) производительность, найдя узкое место, решить проблему узкого горлышка в сетях паутины DI может оказаться трудоёмкой задачейОт наличия или отсутствия ди-контейнера плохой код лучше не станет.
...
Рейтинг: 0 / 0
Dependency injection. Как скрыть внутренние реализации ?
    #39288659
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы: Аспекты ещё бывают на уровне ди-контейнера, но я ими не пользуюсь, посему не упомянул.
...
Рейтинг: 0 / 0
25 сообщений из 58, страница 2 из 3
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Dependency injection. Как скрыть внутренние реализации ?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]