Size: a a a

Чат подкаста «Разбор Полётов»

2020 March 17

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
Artjom Kalita
А незнаешь есть ли какой-то микронавто подобный DI фреймворк - которые во время компиляции уже создает бины которые будут инджектится ?
знаю конечно. Dagger. И это просто ужасно
источник

AA

Anton Arhipov in Чат подкаста «Разбор Полётов»
Artjom Kalita
А незнаешь есть ли какой-то микронавто подобный DI фреймворк - которые во время компиляции уже создает бины которые будут инджектится ?
Dagger?
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
и вообще, микронавт - это Dagger подобный фреймворк, а не наоборот
источник

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
Sergei Egorov
знаю конечно. Dagger. И это просто ужасно
Ужасно из-за тормозов компиляции?
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
Ужасно из-за тормозов компиляции?
из-за всего. DX  просто отвратный
источник

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
Sergei Egorov
из-за всего. DX  просто отвратный
Т.е. dagger2 это только тогда, когда нужно performance любой ценой?
источник

SK

Sergey Kapralov in Чат подкаста «Разбор Полётов»
Sergei Egorov
знаю конечно. Dagger. И это просто ужасно
Ужасна концепция или имплементация?
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
Т.е. dagger2 это только тогда, когда нужно performance любой ценой?
Там даже не про перфоманс. Полагаю есть ниша в виде устройств где reflection медленный. Там даггер единственная возможность
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
Sergey Kapralov
Ужасна концепция или имплементация?
Да.
источник

SK

Sergey Kapralov in Чат подкаста «Разбор Полётов»
о_О
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
Т.е. dagger2 это только тогда, когда нужно performance любой ценой?
я в большой Java агент guice вместо dagger интегрировал, пифомансно было
источник

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
Kirill Tolkachev
Там даже не про перфоманс. Полагаю есть ниша в виде устройств где reflection медленный. Там даггер единственная возможность
Вроде, я видел статью Google’а, где они говорили, что у них Spring DI занимал 30% cpu time от времени работы сервисов.

Во что я легко могу поверить, т.к. у нас подобный опыт был. Первый же prototype или .getBean в Spring’е это вообще адские тормоза.
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
Вроде, я видел статью Google’а, где они говорили, что у них Spring DI занимал 30% cpu time от времени работы сервисов.

Во что я легко могу поверить, т.к. у нас подобный опыт был. Первый же prototype или .getBean в Spring’е это вообще адские тормоза.
так может просто не надо использовать прототипы и getBean?
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
в современном коде их редко найдёшь
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
ну и есть правило - не иметь DI в hot path
источник

SE

Sergei Egorov in Чат подкаста «Разбор Полётов»
(применимо к любому DI)
источник

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
Sergei Egorov
так может просто не надо использовать прототипы и getBean?
Вроде не безельники и могли бы жить.
Им бы прототайпы Взять и запретить.
Им бы и getBean тоже запретить.
Вроде не бездельники и могли бы жить.


Так-то оно так. Но раз из Spring’а не выпилили, то рано или поздно в коде появляются эти самые запрещённые к использованию классы :(
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
Ахах)
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
источник

SK

Sergey Kapralov in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
Вроде не безельники и могли бы жить.
Им бы прототайпы Взять и запретить.
Им бы и getBean тоже запретить.
Вроде не бездельники и могли бы жить.


Так-то оно так. Но раз из Spring’а не выпилили, то рано или поздно в коде появляются эти самые запрещённые к использованию классы :(
А вот запретишь прототайп, запретишь getBean, запретишь еще всякие спорные практики вроде инжекций не через конструктор, глядишь и не останется от спринга ничего.
источник