169 похожих чатов

DI разве только на классах бывает? Да кто мешает сделать

замыкание const fn = (myDependencies: Deps) => (...callParams) => {...}?

10 ответов

26 просмотров

тут еще надо разобраться зачем нужно все свои сущности через DI строить

Evgen K
тут еще надо разобраться зачем нужно все свои сущн...

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

Макс Китсун
Ну вообще чтобы была единая точка где у тебя созд...

так а какие сущности надо заменять? многие вещи в проекте выбираются железобетонно. Такой прием как DI нужен крайне редко

а когда припрет придется бегать по 50-100 файлам и заменять вызовы?) DI хорошо ложится на паттерн стратегию ну или когда у тебя есть сервис, который получает массив сервисов в конструктор и потом эти сервисы использует для работы (например массив провайдеров данных с различных ресурсов и тебе нужно вытянуть все данные со всех ресурсов либо по определенному фильтру) Также хорошо когда в можно поменять и у тебя заменится реализация какого то сервиса (Redis кеш заменится на In-memory в голову пришло)

Макс Китсун
а когда припрет придется бегать по 50-100 файлам и...

а что мне мешает обернуть нужный мне функционал в сервис модуль, который я буду экспортировать прямо в файл и менять только его когда прижмет? Так в разы лучше чем излишне переусложнять структуру проекта IoC. На реальном опыте был случай когда прижало и надо было меянть 50-100 файлов?

Макс Китсун
ДА БЫЛ КОГДА С SQS ПЕРЕЕЖАЛИ НА RABBIT

а подробнее можно? то есть либа напрямую везде использовалась? SQS ведет себя идентично RABBIT настолько что их поведение и семантика API идентичны?

Evgen K
а подробнее можно? то есть либа напрямую везде исп...

мне сложно представить что можно было бы спокойно через IoC тотже лодаш заменить на чтото другое, потому что у меня не получилось, из-за того что даже у таких простых вещей как утилитные библиотеки семантика и поведенеи функций могут в корне по своей природе отличаться и так просто "заменить одну либу на другую и все работает" никогда не встречал на практике - всегда нужен глубокий аналализ, дебаг и тестирование что бы выявить все возможные эдж кейсы

Evgen K
а подробнее можно? то есть либа напрямую везде исп...

ну пришлось сделать небольшой рефакторинг вместо того чтобы абстрагироваться от либы (готовая абстрация была) они прям ее использовали и в итоге переделали

Макс Китсун
ну пришлось сделать небольшой рефакторинг вместо т...

ну я не против абстрагирования от деталей путем выделение это в сервисы, но при чем тут IoC?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта