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

Откуда: СПб
Сообщений: 137
Недавно таки решил попробовать перейти. И сразу обломался, потому как есть много зависимостей которые их не объявляют. И их не заставить работать если есть две библиотеки с одинаковыми пакетами.

Может кто-то таки использует? Идея кажется интересной, но как будто бы слишком мудрено все. В Java и так трудно начать че-то понимать новичкам, а тут еще такие сложности добавились.. Поэтому не понятно стоит ли усложнять свои проекты (если это не библиотека).

Сообщение было отредактировано: 28 апр 21, 00:23
28 апр 21, 00:30    [22315378]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
Stanislav Bashkyrtsev,
Я тоже не нашел смысла использовать.
Даже в чем идея в отличии от тебя не понял.
Спринг народу лучше зашел. И стримы)). Примерно за квартал-год.
Тема была одна всего и то пару фраз.
28 апр 21, 07:00    [22315401]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Пока сборщики не понимают Java modules, складывается забавная ситуация. Есть maven-modules и Java-modules.
И как нам различать эту семантику? Нужна какая-то теория которая это все обобщит. Иначе будет хаос терминологии
и непонимание.

И нужен какой-то эффективный семпл проекта гда без Java модулей - ну вообще просто никак. Из примеров
я на хабре видел статьи с GraalVM которые использовали эти возможности.
28 апр 21, 12:10    [22315541]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5687
Для начала рекомендую почитать эту книгу.
Щас её потихоньку штудирую.


Stanislav Bashkyrtsev
Недавно таки решил попробовать перейти. И сразу обломался, потому как есть много зависимостей которые их не объявляют. И их не заставить работать если есть две библиотеки с одинаковыми пакетами.


Скажем так.
Во время активной разработки модулей, там натолкнулись на NP-полную задачу при опредлении зависимостей.
Поэтому волевым решением сделали ограничение на работу с модулями с одинаковыми пакетами.

Stanislav Bashkyrtsev

Может кто-то таки использует? Идея кажется интересной, но как будто бы слишком мудрено все. В Java и так трудно начать че-то понимать новичкам, а тут еще такие сложности добавились.. Поэтому не понятно стоит ли усложнять свои проекты (если это не библиотека).


Я лично только в теории.
Т.к. тот же SpringBoot и использует модули, но как бы мне пока беспокоиться не надо, т.к. все нужные модули уже есть в зависимостях SpringBoot.
28 апр 21, 12:32    [22315557]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5687
mayton
Пока сборщики не понимают Java modules, складывается забавная ситуация. Есть maven-modules и Java-modules.
И как нам различать эту семантику? Нужна какая-то теория которая это все обобщит. Иначе будет хаос терминологии
и непонимание.

И нужен какой-то эффективный семпл проекта гда без Java модулей - ну вообще просто никак. Из примеров
я на хабре видел статьи с GraalVM которые использовали эти возможности.


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

В связи со Spring'ом головного мозга, мне это как бы не нужно.

Но вот думаю для каких нибудь вещей типа AWS Lambda возможно и актуально.
28 апр 21, 12:37    [22315559]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mad_nazgul,
Где спринг использует если их не видно?
28 апр 21, 12:38    [22315560]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
mad_nazgul
Насколько я понял. Java-модули нужны только для создания компактных приложений.
Нет, вы поняли неправильно.
В самом начале книги, которую вы штудируете, объясняются цели и задачи создания модульной инфраструктуры. Ну и о проблемах и ограничениях тоже сказано.
28 апр 21, 12:44    [22315567]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
Stanislav Bashkyrtsev
Member

Откуда: СПб
Сообщений: 137
mad_nazgul
Насколько я понял. Java-модули нужны только для создания компактных приложений.
Я так понимаю что задача в том чтоб не экспортировать все публичные классы наружу. Т.е. пишем либу, в которой несколько пакетов. Чтоб пакеты были видны в другом пакете приходится делать классы public. Но это также дает доступ к этим классам и всем проектам кто будет использовать либу. Что значит что менять эти классы нельзя, ибо ломает обратную совместимость. Т.е. модули должны предоставить больше инкапсуляции.
mayton
Пока сборщики не понимают Java modules, складывается забавная ситуация. Есть maven-modules и Java-modules.
Ну Maven умеет с модулями работать. Он автоматически создает модули из библиотек которые их не поддерживают и передает их в module-path. А все что для тестирования продолжает жить в class-path.

Хотя насколько я понимаю зависимости все равно надо в двух местах описывать. Сначала в pom.xml, затем в module-info.java. Но соответственно не все зависимости там нужны будут, от транзитивных модулей мы зависеть не будем.
28 апр 21, 13:15    [22315596]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
Stanislav Bashkyrtsev,
Скрывать методы/не пущать слишком мало чтобы взлетело
28 апр 21, 13:41    [22315620]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5687
Basil A. Sidorov
mad_nazgul
Насколько я понял. Java-модули нужны только для создания компактных приложений.
Нет, вы поняли неправильно.
В самом начале книги, которую вы штудируете, объясняются цели и задачи создания модульной инфраструктуры. Ну и о проблемах и ограничениях тоже сказано.


Ну как-то для меня не убедительно пишут. :-)
Т.е. те же самые задачи раньше решались вроде бы не хуже.
Лично я понял, что можно собрать только нужные модули, не пихая в приложение всё.
28 апр 21, 13:45    [22315627]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
mad_nazgul
Т.е. те же самые задачи раньше решались вроде бы не хуже.
Технически - да, решались: всегда можно было "собрать правильный classpath" и, в целом, это работало.
Как быть, когда вы делаете библиотечный модуль, использовать который будут самые разные люди самой разной квалификации? При том, что "библиотечным" может стать любой пакет вашего собственного проекта.
28 апр 21, 14:14    [22315647]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
mad_nazgul
Лично я понял, что можно собрать только нужные модули, не пихая в приложение всё.
Модуляризация рантайма это совсем отдельная вещь. Да, в теории можно собрать микро-JRE, но на практике, в большинстве случаев, выигрыш в размере никак не окупит возни и сопутствующей фрагментации.
Модуляризация серьёзным образом развязывает руки разработчикам JRE/JDK, позволяя чётко отделить общедоступное API от деталей реализации, хотя технически эти детали реализованы публичными методами классов.
28 апр 21, 14:19    [22315652]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Вот тут основные цели описаны.
+

https://www.oracle.com/corporate/features/understanding-java-9-modules.html
Reliable configuration—Modularity provides mechanisms for explicitly declaring dependencies between modules in a manner that’s recognized both at compile time and execution time. The system can walk through these dependencies to determine the subset of all modules required to support your app.

Strong encapsulation—The packages in a module are accessible to other modules only if the module explicitly exports them. Even then, another module cannot use those packages unless it explicitly states that it requires the other module’s capabilities. This improves platform security because fewer classes are accessible to potential attackers. You may find that considering modularity helps you come up with cleaner, more logical designs.

Scalable Java platform—Previously, the Java platform was a monolith consisting of a massive number of packages, making it challenging to develop, maintain and evolve. It couldn’t be easily subsetted. The platform is now modularized into 95 modules (this number might change as Java evolves). You can create custom runtimes consisting of only modules you need for your apps or the devices you’re targeting. For example, if a device does not support GUIs, you could create a runtime that does not include the GUI modules, significantly reducing the runtime’s size.

Greater platform integrity—Before Java 9, it was possible to use many classes in the platform that were not meant for use by an app’s
classes. With strong encapsulation, these internal APIs are truly encapsulated and hidden from apps using the platform. This can make migrating legacy code to modularized Java 9 problematic if your code depends on internal APIs.

Improved performance—The JVM uses various optimization techniques to improve application performance. JSR 376 indicates that these techniques are more effective when it’s known in advance that required types are located only in specific modules.
28 апр 21, 14:24    [22315657]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,
И как там решены взаимозависимости?
28 апр 21, 14:33    [22315669]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Опиши проблему в других словах. А то мне непонятно что такое взаимозависимости. Транзитивные что-ли?
28 апр 21, 14:46    [22315673]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,
В твоей ссылке непонятен первый абзац.
Что то бла бла рекламное
28 апр 21, 14:52    [22315675]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
PetroNotC Sharp
mayton,
В твоей ссылке непонятен первый абзац.
Что то бла бла рекламное

А что тебе непонятно? Декларируешь что модуль А зависит от модуля B. И в скоуп компилляци больше ничего не попадает.
28 апр 21, 15:13    [22315690]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,

Формат какой? По русски писать? На литературном? На матерном?
28 апр 21, 15:38    [22315709]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
PetroNotC Sharp, мы падаем в какую-то профанацию. В девятке есть описательный механизм для зависимостей.
Ты это хотел спросить. Мне кажется тема топика - более сложная и не про формат.
28 апр 21, 15:52    [22315720]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 11020
mayton
Декларируешь что модуль А зависит от модуля B. И в скоуп компилляци больше ничего не попадает.
Компиляция - немного особняком.
А вот во время исполнения JRE сможет обнаружить целый класс ошибок и неоднозначностей уже на этапе загрузки. А не "когда-нибудь потом в неожиданное время".
28 апр 21, 15:57    [22315725]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Да. Аналогичная ситуация у меня была с JavaSecurity Manager. Сколько ни продумывай на этапе разработки - в рантайме
все равно стрельнет что-то неоднозначное. Причем даже отладка SecurityManager не дает внятного пояснения какой привилегии
не хватате. Если выдать всем все - работает. А начнешь выдавать вручную - куча потоков упали. Тоже - тема пятничного топика.
Есть у меня парочка приложений которые нив какую не хотят дружить с SecurityManager.
28 апр 21, 16:39    [22315755]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,
Я понимаю тему буквально.
Использовал ли ты модули и как описывал зависимости.
28 апр 21, 16:45    [22315761]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Я использовал OSGI в реализации Apache Karaf.
28 апр 21, 17:22    [22315787]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 8254
mayton,
Ты же печалился что у сишников нет менеджера зависимостей.
Дак его нет и в java именно для модулей.
А у шарпистов есть.
28 апр 21, 17:25    [22315789]     Ответить | Цитировать Сообщить модератору
 Re: Использует ли кто-то Java Modules?  [new]
mayton
Member

Откуда: loopback
Сообщений: 51389
Сишники это особая порода людей. У них даже если такой менеджер появится - его будет очень
долго игнорировать.
28 апр 21, 17:34    [22315799]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Java Ответить