Size: a a a

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

2020 March 17

KT

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

MS

Maxim Stepachev in Чат подкаста «Разбор Полётов»
@tolkv шейдить, это всё в 1 jar запихивать?
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
Maxim Stepachev
@tolkv шейдить, это всё в 1 jar запихивать?
Не совсем
источник

NK

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

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
Maxim Stepachev
@tolkv шейдить, это всё в 1 jar запихивать?
задача же сделать так чтобы не конфликтовали классы из библиотек пользователей. Поэтому ещё пакеты переименовывают и прочее
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
и тут у тебя разные опции есть)
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
спринг например шейдид cglib)
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
а cglib-nodep шейдит asm )
источник

MS

Maxim Stepachev in Чат подкаста «Разбор Полётов»
аа, спасибо, не знал. Я думал, что так можно сделать.
источник

KT

Kirill Tolkachev in Чат подкаста «Разбор Полётов»
для мейвена и грейдла есть плагины которые это делают
источник

KT

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

MS

Maxim Stepachev in Чат подкаста «Разбор Полётов»
Ага, это я уже нагуглил
источник

KT

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

SE

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

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
А есть понимание почему именно DI решит проблему такого класса?

Можно конкретный пример? Правда интересно.

По-моему, там и более простые решения есть: нужно перестать добавлять пустые строки где попало. Зачем, например, тут через раз пустая строка? https://github.com/apache/ignite/blob/336a7eda0d7123d2de93371b1beb304db3a3c9be/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java#L2675-L2683
источник

MS

Maxim Stepachev in Чат подкаста «Разбор Полётов»
Vladimir Sitnikov
А есть понимание почему именно DI решит проблему такого класса?

Можно конкретный пример? Правда интересно.

По-моему, там и более простые решения есть: нужно перестать добавлять пустые строки где попало. Зачем, например, тут через раз пустая строка? https://github.com/apache/ignite/blob/336a7eda0d7123d2de93371b1beb304db3a3c9be/modules/core/src/main/java/org/apache/ignite/spi/communication/tcp/TcpCommunicationSpi.java#L2675-L2683
Ну тут больше последствия использования паттерна сервис локатор повсеместно
источник

VG

Vik Gamov in Чат подкаста «Разбор Полётов»
то еще кафно. он тоже платный
источник

MS

Maxim Stepachev in Чат подкаста «Разбор Полётов»
Если везде будет контроль зависимостей, код начнёт выпрямляться
источник

VG

Vik Gamov in Чат подкаста «Разбор Полётов»
@abashev в вот Fork чем лучше Tower?
источник

VS

Vladimir Sitnikov in Чат подкаста «Разбор Полётов»
Maxim Stepachev
Ну тут больше последствия использования паттерна сервис локатор повсеместно
Но ходят слухи, что как раз из IDEA этот самый DI выпилили.

Ещё пример: Gradle.
Если у тамошнего конструктора меньше 20 аргументов, то, наверное, они на этапе review такой код срезают.
Вот типичный пример: https://github.com/gradle/gradle/blob/3f79806c3599f54ca006412c23a0fe1d20698e98/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/configurations/DefaultConfiguration.java#L227-L248

Созавать такие объекты одно удовольствие: https://github.com/gradle/gradle/blob/205f635ff7fb69c7ba8e5cb0ddfbab7bca8ecb40/subprojects/dependency-management/src/main/java/org/gradle/api/internal/artifacts/configurations/DefaultConfigurationContainer.java#L163-L167
источник