Модульность Java 9: ​​первый взгляд

Java 9 выпущена в июле 2017 года и содержит полностью новую модульную систему. Java 9 представляет множество других функций, таких как JEPL (цикл чтения и оценки печати) Jshell, фабричные методы для List, Set и Map, возможность частных методов в интерфейсе, клиенты HTTP/2 и т. д., но все они довольно незначительны. изменения по сравнению с модульной системой. С другой стороны, модульная система больше касается дизайна, чем функций. Модули предоставляют новые возможности для улучшения большой структуры навыков и дизайна вашей кодовой базы. Это большое изменение как в языке Java, так и в библиотеках и JVM. Поэтому в этом блоге мы сосредоточимся исключительно на модульной системе. мы обсудим
1. Надежная инкапсуляция
2.
Явные зависимости модулей
3.
Службы
4.
Jlink
5.
Перенос существующего кода на Java 9

Модульная система — одно из самых больших изменений в Java за всю историю. Это не просто небольшие изменения в языке, это касается библиотек, JDK, JVM. Все было изменено для размещения модулей.

Что такое модульность? Почему это важно?

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

С конфликтующими версиями классов JVM случайным образом выберет первый, который встретится в пути к классам. Основная проблема заключается в том, что любой класс в пути к классам может получить доступ к другим классам в пути к классам, поэтому, даже если код вашего приложения находится в отдельных JAR-файлах, какая-то вредоносная сторонняя библиотека в принципе использует только доступ к вашему коду. Не существует понятия сильной инкапсуляции. Мы все знаем о тех приложениях, которые просто растут и растут без каких-либо четких границ, без каких-либо четких обязанностей в части приложений, и все просто висит вместе. Люди называют их монолитными приложениями или просто большим комком грязи, но все мы знаем, как плохо работать с таким приложением. Если у вас такое монолитное приложение, его становится сложно понять. Новым людям, присоединившимся к команде, будет сложно понять, где искать в коде, что делать и как с ним работать. Это приводит к снижению ремонтопригодности кодовой базы. Так как же предотвратить это? Модульность — один из ответов на этот вопрос. Модульность — это идеальный инструмент гибкости.

Что такое модуль?

На высоком уровне модуль — это то, что имеет имя, думайте об этом как об идентичности и представляет собой группы связанного кода. Этот код может быть либо инкапсулирован внутри модуля, либо он может быть виден внешнему миру и является автономным. Это означает, что он содержит все, что ему нужно для выполнения своей функции, и если он не содержит всего, что ему нужно, он будет иметь явное определение того, какой еще модуль ему нужен для выполнения своей работы.

Вы можете применить подход «разделяй и властвуй» к своему приложению, разбить его на части, сделать небольшие модули и таким образом сделать приложение управляемым. Каждый модуль может скрыть некоторые детали своей реализации и показать только понятные интерфейсы, которые используются другими модулями.

Три принципа модульности

В следующем выпуске мы подробно рассмотрим модули.

Нажмите здесь, чтобы перейти к следующему выпуску.

источник:
https://www.geekboots.com
https://www.pluralsight.com