Size: a a a

Programming Offtop

2020 October 30

VP

Vladimir Petrakovich in Programming Offtop
(
транзитивно зачем
В смысле зачем? А как иначе?
источник

AM

Andrew Mikhaylov in Programming Offtop
(
транзитивно зачем
А ты хочешь все зависимости зависимостей руками перечислять?
источник

AM

Andrew Mikhaylov in Programming Offtop
Если надо, гредл позволяет влияет на транзитивные зависимости в конкретных случаях.
источник

(

( in Programming Offtop
Vladimir Petrakovich
В смысле зачем? А как иначе?
ну, не транзитивно? депендиться на стдлиб implementation-ом, как все из нас
источник

VP

Vladimir Petrakovich in Programming Offtop
(
ну, не транзитивно? депендиться на стдлиб implementation-ом, как все из нас
А, в compile time её видно. Ну хз, если так, то можно и issue открыть.
источник

AM

Andrew Mikhaylov in Programming Offtop
(
ну, не транзитивно? депендиться на стдлиб implementation-ом, как все из нас
А я хз, зачем ты, если пишешь либы, зависишь от стдлиба не как апи. Ты не используешь в своём апи типы из стдлиб?
источник

AM

Andrew Mikhaylov in Programming Offtop
Ну и так или иначе, гредл всё равно не сможет подключить стдиб в двух вариациях.
источник

VP

Vladimir Petrakovich in Programming Offtop
Andrew Mikhaylov
Ну и так или иначе, гредл всё равно не сможет подключить стдиб в двух вариациях.
Он может в компайл-тайме показывать пользователю ту версию, которую он сам выбрал, а уже в рантайме подсунуть ту, которую надо (более новую).
Но я подозреваю, что тогда в таких вот ситуациях не компиляция сломается, а в рантайме всё упадёт.
источник

AM

Andrew Mikhaylov in Programming Offtop
Vladimir Petrakovich
Он может в компайл-тайме показывать пользователю ту версию, которую он сам выбрал, а уже в рантайме подсунуть ту, которую надо (более новую).
Но я подозреваю, что тогда в таких вот ситуациях не компиляция сломается, а в рантайме всё упадёт.
Ну да, я к тому же, оно всё равно взорвётся в итоге.
источник

VP

Vladimir Petrakovich in Programming Offtop
Andrew Mikhaylov
Ну да, я к тому же, оно всё равно взорвётся в итоге.
Ну кстати если там добавили @Deprecated(level = ERROR), то нет
источник

VP

Vladimir Petrakovich in Programming Offtop
В общем, плохая это практика, мне кажется
источник

AM

Andrew Mikhaylov in Programming Offtop
Vladimir Petrakovich
Ну кстати если там добавили @Deprecated(level = ERROR), то нет
Хм, ты прав.
источник

(

( in Programming Offtop
Andrew Mikhaylov
А я хз, зачем ты, если пишешь либы, зависишь от стдлиба не как апи. Ты не используешь в своём апи типы из стдлиб?
Да так или иначе хуйня получается, если юзер накатывает новую версию моей либы, у него ломается компиляция, потому что я по-мужицки замещаю его версию стдлибы моей версией стдлибы
С другой стороны, экспериментал это экспериментал
источник

v

vitaly in Programming Offtop
а есть в джаве / котлине / андройде аналог ifdef?
источник

VP

Vladimir Petrakovich in Programming Offtop
vitaly
а есть в джаве / котлине / андройде аналог ifdef?
Нет, для этого со времён C++ существует полиморфизм
источник

AM

Andrew Mikhaylov in Programming Offtop
vitaly
а есть в джаве / котлине / андройде аналог ifdef?
Если с полиморфизмом не складывается, всегда можно взять сорс-сеты в обычном гредле или флейворы в андроидном.
источник

AM

Andrew Mikhaylov in Programming Offtop
(
Да так или иначе хуйня получается, если юзер накатывает новую версию моей либы, у него ломается компиляция, потому что я по-мужицки замещаю его версию стдлибы моей версией стдлибы
С другой стороны, экспериментал это экспериментал
С замещением он на своей стороне разбираться должен, раз у него разные зависимости тащат одну и ту же в транзите 🤷‍♂ Ты ж не можешь предугадать в 100% случаев, с какими либами потребитель будет твою совмещать.
источник

AM

Andrew Mikhaylov in Programming Offtop
В отдельных случаях свои гарантировано приватные зависимости можно перепаковать в другой пакет, но тогда ты тчрешь возможность это счастье совмещать с другим неперепакованным кодом. В случае с стдлибом это, очевидно, не взлетит.
источник

VP

Vladimir Petrakovich in Programming Offtop
У меня есть охуенная история про перепаковщиков.
micrometer-registry-statsd содержит сам по себе минимум кода, но тащит в себе копию Reactor и Netty. В итоге у этой хуйни jar весит 6 мб и при запуске поднимает свою пачку потоков для Netty Event Loop (ведь Netty скопирован). В общем, накладные расходы страшные.
источник

v

vitaly in Programming Offtop
Andrew Mikhaylov
Если с полиморфизмом не складывается, всегда можно взять сорс-сеты в обычном гредле или флейворы в андроидном.
а мне вот надо, чтобы в скомпиленных файлах не было того кода, который не соответствует флейвору.
источник