Создать надёжное и безопасное приложение гораздо проще, если упаковать код в аккуратные блоки. Система модулей в Java представляет собой языковой стандарт для создания таких блоков. Теперь вы можете контролировать взаимодействия различных JAR и легко обнаруживать недостающие зависимости. Фундаментальные изменения архитектуры затронули ядро Java, начиная с версии 9. Все API ядра распространяются в виде модулей, а для библиотек, фреймворков и приложений аналогичный подход можно считать хорошей практикой и рекомендацией.
Вы освоите наилучшие практики модульного проектирования, отладки приложения и его развертывания перед сдачей в продакшен.
В этой книге
— Архитектура модульного приложения Java.
— Создание модулей: от исходников до JAR-файлов.
— Миграция на версию Java с модулями.
— Избавление от зависимостей и оттачивание API.
— Обработка рефлексии и версионирование.
Вы освоите наилучшие практики модульного проектирования, отладки приложения и его развертывания перед сдачей в продакшен.
В этой книге
— Архитектура модульного приложения Java.
— Создание модулей: от исходников до JAR-файлов.
— Миграция на версию Java с модулями.
— Избавление от зависимостей и оттачивание API.
— Обработка рефлексии и версионирование.
Дәйексөздер15
Раздел 2.1 объясняет, что делает гипотетическое приложение, из каких типов оно состоит и что входит в его сферу ответственности. Система модулей появляется в разделе 2.2, где обсуждается, как организовать файлы и папки, описать модули, скомпилировать и запустить приложение. Это краткое знакомство продемонстрирует многие из основных механизмов системы модулей, а также ряд случаев, когда базовых функций не хватает для модуляризации сложного приложения, — тема, которая обсуждается в разделе 2.3. Вы можете найти приложение онлайн по ссылкам www.manning.com/books/the-java-module-system и github.com/CodeFX-org/demo-jpms-monitor. Ветка master содержит вариант, описанный в разделе 2.2.
Резюме
• Систему программного обеспечения можно представить в виде графа, который часто показывает (не)желаемые свойства системы.
• Java не поддерживает графы на уровне JAR-файлов. Это приводит к различным проблемам, среди которых можно выделить JAR-ад, ручную проверку безопасности и неудобства сопровождения.
• Система модулей платформы Java существует для того, чтобы обеспечить понимание графов Java, что вносит в язык модульность на уровне артефактов. Самые важные ее цели — надежные настройка и инкапсуляция, так же как улучшение безопасности, удобства сопровождения и производительности.
• Все это достижимо благодаря вводу модулей — грубо говоря, JAR-файлов с дополнительным дескриптором. Компилятор и среда выполнения интерпретируют описанную информацию, чтобы построить граф зависимостей и предоставить обещанные преимущества.
• Систему программного обеспечения можно представить в виде графа, который часто показывает (не)желаемые свойства системы.
• Java не поддерживает графы на уровне JAR-файлов. Это приводит к различным проблемам, среди которых можно выделить JAR-ад, ручную проверку безопасности и неудобства сопровождения.
• Система модулей платформы Java существует для того, чтобы обеспечить понимание графов Java, что вносит в язык модульность на уровне артефактов. Самые важные ее цели — надежные настройка и инкапсуляция, так же как улучшение безопасности, удобства сопровождения и производительности.
• Все это достижимо благодаря вводу модулей — грубо говоря, JAR-файлов с дополнительным дескриптором. Компилятор и среда выполнения интерпретируют описанную информацию, чтобы построить граф зависимостей и предоставить обещанные преимущества.
Однако для того, чтобы по-настоящему понять проблемы, от которых система модулей собирается избавиться, и оценить предлагаемые решения, требуется нечто большее. Ознакомление со следующими концепциями и опыт работы с большими приложениями упростит понимание возможностей системы модулей и их преимущества и недостатки:
• принципы работы JVM, в частности загрузчика классов;
• проблемы, которые вызывает этот механизм (вспомните JAR-ад);
• более продвинутые API Java, такие как загрузчик сервисов и API рефлексии;
• инструменты сборки, такие как Maven и Gradle, и построение с их помощью проекта;
• способы модуляризации программных систем.
• принципы работы JVM, в частности загрузчика классов;
• проблемы, которые вызывает этот механизм (вспомните JAR-ад);
• более продвинутые API Java, такие как загрузчик сервисов и API рефлексии;
• инструменты сборки, такие как Maven и Gradle, и построение с их помощью проекта;
• способы модуляризации программных систем.
Сөреде7
1 829 кітап
809
277 кітап
761
121 кітап
3
53 кітап
2
