Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Разбираюсь с jigsaw. Хочется понять чуть глубже, чем export/requires

Вот наткнулся на доклад.


Интересно, но непонятно что он там на практике делает.

Есть что-то подобное в текстовом виде?
19 апр 19, 21:29    [21867534]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Судя по всему, модули. Но я надеюсь что читателям не придётся целый час слушать его лекцию?

Может выдержки там... цитаты. Есть?
20 апр 19, 01:30    [21867622]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
alex55555
Member

Откуда:
Сообщений: 2075
questioner
Разбираюсь с jigsaw.

....

Есть что-то подобное в текстовом виде?

questioner, если "разбираюсь", то просто погуглить текстовое описание никак? Их немало, вообще-то.
20 апр 19, 11:18    [21867710]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
alex55555
questioner
Разбираюсь с jigsaw.

....

Есть что-то подобное в текстовом виде?

questioner, если "разбираюсь", то просто погуглить текстовое описание никак? Их немало, вообще-то.

первоисточник 404 возвращает https://jokerconf.com/2018/talks/5w689rr9m42uy6cwcukuie/
20 апр 19, 11:55    [21867728]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1685
questioner
Разбираюсь с jigsaw. Хочется понять чуть глубже, чем export/requires

Вот наткнулся на доклад.


Интересно, но непонятно что он там на практике делает.

Есть что-то подобное в текстовом виде?


1. Липицкий не для даунов рассказывает. У него очень сложные задачи и он рассказывает о боли, которая 90% разработчиков вообще не понятны.

2. Если мозги есть- его надо слушать. Пересказ не нужен- не то.

3. Решает просто- две библиотеки будут жить внутри приложения и не мешаться. Во многих библиотеках, к примеру, вкостылен asm с помощью переименования пакетов. Думаю, что у многих живут 2-3 копии разных версий :) Jigsaw автоматизирует этот процесс, заменяя костыли на нормальные решения.
20 апр 19, 11:59    [21867731]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Alexey Tomin
questioner
Разбираюсь с jigsaw. Хочется понять чуть глубже, чем export/requires

Вот наткнулся на доклад.


Интересно, но непонятно что он там на практике делает.

Есть что-то подобное в текстовом виде?


1. Липицкий не для даунов рассказывает. У него очень сложные задачи и он рассказывает о боли, которая 90% разработчиков вообще не понятны.

2. Если мозги есть- его надо слушать. Пересказ не нужен- не то.

3. Решает просто- две библиотеки будут жить внутри приложения и не мешаться. Во многих библиотеках, к примеру, вкостылен asm с помощью переименования пакетов. Думаю, что у многих живут 2-3 копии разных версий :) Jigsaw автоматизирует этот процесс, заменяя костыли на нормальные решения.


За дауна спасибо.

Вот нашёл репку: https://github.com/pjBooms/Jigsaw-Layers-Example

Вот честно из его выступления ни разу не ясен код:

public class JavaConfCollector
{
    private static ModuleLayer createLayer(String from, String module) {
        var finder = ModuleFinder.of(Paths.get(from));
        var parent = ModuleLayer.boot();
        var cf = parent.configuration().resolve(finder, ModuleFinder.of(), Set.of(module));
        return parent.defineModulesWithOneLoader(cf, ClassLoader.getSystemClassLoader());
    }

    public static void main(String[] args) {
        var layer = createLayer(args[0], "devoxx.ukraine.provider");
        var services = ServiceLoader.load(layer, JavaConfProvider.class);
        services.stream()
                .map(ServiceLoader.Provider::get)
                .forEach(confProvider ->
                        System.out.println(confProvider.provide())
                );
    }
}
20 апр 19, 12:11    [21867736]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1685
questioner
За дауна спасибо.


А это не к Вам. Это к тому, что если кажется, что он говорит фигню- задумайтесь о себе :)

questioner
Вот честно из его выступления ни разу не ясен код:


Его выступлениях нет ничего, что можно применить сразу. Там идеи, которые позволят что-то лучше понять. Но надо знать много, чтобы это понять.
20 апр 19, 18:59    [21867880]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
redwhite90
Member

Откуда:
Сообщений: 1885
Alexey Tomin
questioner
За дауна спасибо.


А это не к Вам. Это к тому, что если кажется, что он говорит фигню- задумайтесь о себе :)

questioner
Вот честно из его выступления ни разу не ясен код:


Его выступлениях нет ничего, что можно применить сразу. Там идеи, которые позволят что-то лучше понять. Но надо знать много, чтобы это понять.


Вот и хочется понять что почитать, чтобы закрыть дыру между простыми примерами и тем о чем он говорит. В интернете куча примеров с requires/export но у него помимо модулей есть сервисы и слои
20 апр 19, 19:34    [21867893]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Вот неплохой introduction:

Я вот только не понял, что значит, что библиотека поддерживает модульную систему
22 апр 19, 15:12    [21868923]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
redwhite90
Вот и хочется понять что почитать, чтобы закрыть дыру между простыми примерами и тем о чем он говорит. В интернете куча примеров с requires/export но у него помимо модулей есть сервисы и слои
Читать нужно начать с OSGi, осознать всю боль, а потом перейти с JPMS и осознать еще большую боль.
22 апр 19, 15:25    [21868939]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
Модули это техническое бремя особо крупных проектов. Можно прожить долгую и счастливую хипстерскую
жизсть и никогда не нюхнуть тех страшных проблем о которых толкует Липский и прочие.
22 апр 19, 16:03    [21869002]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Андрей Панфилов
redwhite90
Вот и хочется понять что почитать, чтобы закрыть дыру между простыми примерами и тем о чем он говорит. В интернете куча примеров с requires/export но у него помимо модулей есть сервисы и слои
Читать нужно начать с OSGi, осознать всю боль, а потом перейти с JPMS и осознать еще большую боль.


Года 4 назад страдал с OSGI. Так страдал, что решил свалить оттуда и жизнь и правда как-то наладилась.

А вот про JPMS даже не слышал.
22 апр 19, 16:10    [21869015]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
mayton
Модули это техническое бремя особо крупных проектов. Можно прожить долгую и счастливую хипстерскую
жизсть и никогда не нюхнуть тех страшных проблем о которых толкует Липский и прочие.


Ну jarhell то уж очень такая популярная проблема. В контектсте неё хотелось и понять Jigsaw
22 апр 19, 16:12    [21869017]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
questioner
А вот про JPMS даже не слышал.
Т.е. вы даже основополагающий документ не читали?

Java Platform Module System (JSR 376)
This is the primary web page for JSR 376, the Java Platform Module System, a central component of Project Jigsaw.
22 апр 19, 16:17    [21869024]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Андрей Панфилов
questioner
А вот про JPMS даже не слышал.
Т.е. вы даже основополагающий документ не читали?

Java Platform Module System (JSR 376)
This is the primary web page for JSR 376, the Java Platform Module System, a central component of Project Jigsaw.


ааа, вот оно что....

Я думал, что уже времени прошло много и должно быть кем-то разжовано для всех эта тема и не смысла ломать голову над сухим техническим текстом.
22 апр 19, 17:58    [21869151]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
questioner
Я думал, что уже времени прошло много и должно быть кем-то разжовано для всех эта тема и не смысла ломать голову над сухим техническим текстом.
Чуваки, которые OSGi занимаются уже все недостатки JPMS разжевали объясняю о чем Липский в презентации (посмотрел первые минут 25, все ждал когда он от выпитой воды обоссытся, но не дождался) рассказывает: вот у нас есть некий конечный набор классов, который вместе с каким-то зависимостями реализует некоторую функциональность в нашем приложении. Вопрос: каким образом изолировать зависимости одного такого набора от другого? ответ:
1. пилим наш набор классов на две условных части: одна не тащит конфликтующие зависимости (API), вторая тащит (IMPL)
2. API сразу помещаем в класслоадер нашего приложения
3. IMPL часть в класслоадер приложения не помещаем, а кладем где-то сбоку, а в приложение кладем описание того как нам все эти классы и зависимости достать, если мы хотим получить экземпляр класса, реализующего наш API
4. когда начинаем искать реализацию нужного API просто создаем дочерний класслодер, в него сгружаем все зависимости и, в принципе, все: класслоадеры модулей друг с другом не конфликтуют, приложение общается с модулями через API

как по мне так никакой новизны тут нет - так еще и 15 лет назад делали
22 апр 19, 19:46    [21869231]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Давайте по порядку:
Картинка из выступления [youtube=]
Картинка с другого сайта.

Это про OSGI.

Вот вообще не понятно. Можно это простыми фразами пояснить без причастных оборотов?
22 апр 19, 19:47    [21869233]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
questioner
Давайте по порядку
Вот вообще не понятно. Можно это простыми фразами пояснить без причастных оборотов?
Ну вот зачем вы эти вопросы на форуме задаете? непонятно что там чувак накреативил в своих презентациях - задавайте вопросы этому чуваку, он там контакты свои оставил. JPMS вообще ничего фундаментального для решения вашей проблемы не приносит.
22 апр 19, 19:57    [21869243]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
Андрей Панфилов
questioner
Давайте по порядку
Вот вообще не понятно. Можно это простыми фразами пояснить без причастных оборотов?
Ну вот зачем вы эти вопросы на форуме задаете? непонятно что там чувак накреативил в своих презентациях - задавайте вопросы этому чуваку, он там контакты свои оставил. JPMS вообще ничего фундаментального для решения вашей проблемы не приносит.


Полагаю, что кто-то из пристуствующих смотрел этот доклад и возможно даже понял, что он имел ввиду
22 апр 19, 20:12    [21869254]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
questioner
Полагаю, что кто-то из пристуствующих смотрел этот доклад и возможно даже понял, что он имел ввиду
Ну а вы сами посмотреть не можете и понять что там две вещи постулируется
- OSGi в особо клинических случаях "внезапно" не работает
- в JPMS все работает, но там ничего нет

Вообще чувак забавный, на одних и тех же слайдах умудрился два разных доклада сделать
22 апр 19, 20:35    [21869262]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1685
Андрей Панфилов
questioner
Полагаю, что кто-то из пристуствующих смотрел этот доклад и возможно даже понял, что он имел ввиду
Ну а вы сами посмотреть не можете и понять что там две вещи постулируется
- OSGi в особо клинических случаях "внезапно" не работает
- в JPMS все работает, но там ничего нет

Вообще чувак забавный, на одних и тех же слайдах умудрился два разных доклада сделать Картинка с другого сайта.


Он разработчик AOT компилятора java с 20, что ли, летним стажем.
Ему не модули писать, ему потом это компилировать.
"Вы смотрели на молоток со стороны гвоздя?"
Ничего практически ценного в его докладах нет. Но после доклада могут возникнуть некоторые вопросы, поиск ответа на которые сделает Вас умнее. Или не возникнут.
И в памяти отложится нечто, кто когда-то выстрелит и поможет. Или не отложится. Или не выстрелит.
Ну и можно получить эстетическое удовольствие. Или не получится :)
Есть ещё Сергей Куксенко (он вроде уже не в России, и не приезжает, но старые доклады есть). Там тоже- открываются такие проблемы, о которых мы даже не подозреваем и нафиг не надо. Почти никогда. Большинству- никогда.
23 апр 19, 06:48    [21869387]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Андрей Панфилов
Member

Откуда: Москва > Melbourne
Сообщений: 3204
Alexey Tomin
Он разработчик AOT компилятора java с 20, что ли, летним стажем.
Ему не модули писать, ему потом это компилировать.
"Вы смотрели на молоток со стороны гвоздя?"
Ничего практически ценного в его докладах нет. Но после доклада могут возникнуть некоторые вопросы, поиск ответа на которые сделает Вас умнее. Или не возникнут.
И в памяти отложится нечто, кто когда-то выстрелит и поможет. Или не отложится. Или не выстрелит.
Ну и можно получить эстетическое удовольствие. Или не получится :)
Есть ещё Сергей Куксенко (он вроде уже не в России, и не приезжает, но старые доклады есть). Там тоже- открываются такие проблемы, о которых мы даже не подозреваем и нафиг не надо. Почти никогда. Большинству- никогда.
а как написанное вами относится к тому, что в докладе довольно древний (и неудобный) паттерн назвали "тщательно продуманной системой без видимых фундаментальных проблем"?
23 апр 19, 11:46    [21869653]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
mayton
Member

Откуда: loopback
Сообщений: 40406
questioner, у тебя есть какой-нибуть толстый проект где дофига зависимостей?
23 апр 19, 12:00    [21869674]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
Alexey Tomin
Member

Откуда: Самара
Сообщений: 1685
Андрей Панфилов
Alexey Tomin
Он разработчик AOT компилятора java с 20, что ли, летним стажем.
Ему не модули писать, ему потом это компилировать.
"Вы смотрели на молоток со стороны гвоздя?"
Ничего практически ценного в его докладах нет. Но после доклада могут возникнуть некоторые вопросы, поиск ответа на которые сделает Вас умнее. Или не возникнут.
И в памяти отложится нечто, кто когда-то выстрелит и поможет. Или не отложится. Или не выстрелит.
Ну и можно получить эстетическое удовольствие. Или не получится :)
Есть ещё Сергей Куксенко (он вроде уже не в России, и не приезжает, но старые доклады есть). Там тоже- открываются такие проблемы, о которых мы даже не подозреваем и нафиг не надо. Почти никогда. Большинству- никогда.
а как написанное вами относится к тому, что в докладе довольно древний (и неудобный) паттерн назвали "тщательно продуманной системой без видимых фундаментальных проблем"?


Да никак Картинка с другого сайта.
23 апр 19, 19:43    [21870086]     Ответить | Цитировать Сообщить модератору
 Re: Как Jigsaw решает jar hell проблему?  [new]
questioner
Member

Откуда:
Сообщений: 1626
mayton
questioner, у тебя есть какой-нибуть толстый проект где дофига зависимостей?


конечно.


А вот что делать с библиотеками я так и не понял. Мне надо самому ручками каждую либу прописывать в module-info.class ?
24 апр 19, 00:46    [21870204]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Java Ответить