Size: a a a

Java/Kotlin and more

2021 May 21

Э

Эд in Java/Kotlin and more
почитаю, спасибо
источник

RZ

Roman Zinchuk in Java/Kotlin and more
Почему не однозначно, вы инжектите через класс ?
источник

VA

Victor Alenkov in Java/Kotlin and more
да. почему бы и нет?
источник

Э

Эд in Java/Kotlin and more
Я думал сначала, что ок инжектить всегда через интерфейс, что это правильно, что по некоторым принципам правильно (абстракции, имплементации зависят от абстракций). Лично я для себя понял, что если у меня 1 имплементация, и она похоже в будущем будет одна, то интерфейс не ставлю. Потому что интерфейс излишен
источник

Э

Эд in Java/Kotlin and more
Общался с опытными людьми из обоих лагерей
источник

RZ

Roman Zinchuk in Java/Kotlin and more
походу не с очень опытными
источник

RZ

Roman Zinchuk in Java/Kotlin and more
чтобы нормально писать тесты нужны интерфейсы, и для нормальной архитектуры нужны интерфейсы
источник

P

Poloz in Java/Kotlin and more
инжекчу через класс, в чем проблема? Если появится несколько имплементаций, сделать интерфейс - пара кликов в идее. Чяднт?
источник

Э

Эд in Java/Kotlin and more
смотри, сейчас люди снизу ответят, что инжектить ВСЕГДА через интерфейсы излишне
источник

RZ

Roman Zinchuk in Java/Kotlin and more
есть принципы архитектуры...
источник

Э

Эд in Java/Kotlin and more
да, согласно с принципами, ты вообще не должен трогать имплементацию после того, как она написана, а заменять имплементации одна на другую
источник

Э

Эд in Java/Kotlin and more
но как-то похуй большинству
источник

Э

Эд in Java/Kotlin and more
для тестов +
источник

RZ

Roman Zinchuk in Java/Kotlin and more
буй знает как обьяснить, надо мозги на место поставить после года армии, но вот Роберт Мартин в "Чистой архитектуре" довольно неплохо описал почему класс должен знать про интерфейс, но не про детали реализации.
источник

VA

Victor Alenkov in Java/Kotlin and more
что мешает тестировать класс без интерфейса?
источник

Э

Эд in Java/Kotlin and more
стабать/ мокать удобней зависимости
источник

VA

Victor Alenkov in Java/Kotlin and more
он и так не будет знать, если не смешиваете.
Другое дело, когда вы в одном jar храните интерфейсы, которые потом, в приложении поимеют рядом jar с имплементациями. Эдакое контракт на API кода
И совсем иное, когда вы в одном куске кода сразу вкорячиваете и интерфейс и его единственную имплементацию - вот тут избыточность
источник

VA

Victor Alenkov in Java/Kotlin and more
видимо я как-то не так пишу - мне не мешаетт мокать что то что другое
источник

RZ

Roman Zinchuk in Java/Kotlin and more
смотрите сюда, Foo незнает ничего про Bar, а Bar незнает про Foo, никакого coupling-а практически
источник

RZ

Roman Zinchuk in Java/Kotlin and more
это инверсия контроля
источник