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

Очень большой многомодульный проект. Но мне не понятно зачем так делать?

Что это даёт?

Ведь всё можно сделать обычным @Binds, а на имплементации интерфейса @Inject на конструкторе.

Зачем явно прописывать? Кто занет?

13 ответов

12 просмотров

Можно сюда попробовать адресовать вопрос https://t.me/dagger_2

sankarshana- Автор вопроса
Leonid Beliakov
Можно сюда попробовать адресовать вопрос https://t...

Спасибо! Попробую ) Но ведь это так же архитектурный вопрос, вроде

sankarshana
Спасибо! Попробую ) Но ведь это так же архитектурн...

Там Binds не получится использовать, насколько я вижу, тк реализации не закрыты интерфейсами Но вопрос зачем там заюзали Provides вместо того, чтобы просто поставить Inject в конструкторе - остаётся открытым) Может быть там и нет скрытого смысла, просто не самый оптимальный код?💁🏻‍♂️

Возможно, кто-то не захотел добавлять даггер в зависимости для Inject в конструктор

sankarshana- Автор вопроса
Pavel
Возможно, кто-то не захотел добавлять даггер в зав...

А @Provides - это разве не даггер? В модуле есть зависимость на даггер уже.

sankarshana
А @Provides - это разве не даггер? В модуле есть з...

думаю, говорилось о том, чтобы в классе DetailsSwiftSubMapper, например, не было аннотаций даггера. грубо говоря, чтобы в этот класс не добавлять деталей его предоставления в общем коде программы

Если поставить на конструктор Inject и потом забыть где-то написать Binds со скоупом, то новый экземпляр будет создаваться нечвно при каждом внедрении. Если же не ставить Inject, то проект не будет собираться, пока явно не укажешь как и с каким скоупом. В предыдущем проекте где я работал, отказались от Inject именно по этой причине. Правда потом и от даггера отказались, но это уже другая история.

Kopusha
на что перешли?

Вообще отказались от DI фреймворков. Вручную стали вызывать конструкторы.

Arkadii Ivanov
Вообще отказались от DI фреймворков. Вручную стали...

а как контролировать скоупы и их ЖЦ без DI? не много ли бойлерплейта?

Maksim Sukhotski
а как контролировать скоупы и их ЖЦ без DI? не мно...

Это дело было в Badoo. Там проект был на 1.5 млн строк, и 700+ фича-модулей. В каждой фиче был свой граф из 10-20 классов. Очень легко их было руками создавать в классе-билдере. Фичи были организованы в деревья - RIBs архитектура - скоуп контролировался предками.

Влад Макаренко
а что с коином не то?

Нет (по крайней мере тогда) безопасности во времени сборки. По этой же причине перешли с Toothpick на Dagger, ещё до отказа от последнего.

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

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

Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
hi im a cs student. i need some advice from people who have enough experience in Embedded Software. I need to know whether this profession is suitable for me. I have watched s...
Sahand 🏔️
5
Кстати а покупал кто-нибудь ЭЦП для подписи кода? А то у меня на некоторых компах и ОС иногда SmartScreen винды программу за вирус принимал. Если купить такую ЭЦП и подписыват...
Дмитрий Завгородний
15
А кто-нибудь запихивал сборку перловых модулей/образов с perl приложениями в окружения без интернета (в специализированном CI/CD)? У меня сейчас есть ряд cpanfile, которые н...
Andrey Smirnov / 𝓪𝓵𝓵𝓽𝓮𝓻 /
14
Запускаю SIMD на Delphi 11 CE пишет: Exception class name: EJclError Exception message: Function not found: kernel32.dll.GetEnabledExtendedFeatures (0014763C){Jcl280.bpl } [7...
Александр Смоляков
10
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
10
Hello, good time everyone I use Firebase to implement push notification inside the Flutter application and it works, but I don't receive the notification when the application ...
Iman
1
Вместо import и library придется писать importlib?
The Bird of Hermes
19
тут по sql есть спецы надеюсь есть таблица большая и там поле DATETIME TTIMESTAMP NOT NULL выборки будут по дням и нужен индекс... какой из индексов будет менее напряжным и ме...
Slym
9
Карта сайта