Статья опубликована в рамках: XCIX Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 11 марта 2021 г.)
Наука: Информационные технологии
Скачать книгу(-и): Сборник статей конференции
дипломов
ОБЗОР ПРИКЛАДНЫХ БИБЛИОТЕК ДЛЯ НАПИСАНИЯ ПРИЛОЖЕНИЙ НА ЯЗЫКЕ ПРОГРАММИРОВАНИЯ JAVA
АННОТАЦИЯ
Одна из черт хорошего и опытного разработчика Java – обширные знания API, включая JDK и сторонние библиотеки. В данной статье будут рассмотрены некоторые из наиболее полезных и важных библиотек, с которыми должен быть знаком каждый Java-разработчик.
Ключевые слова: Java, Java Development Kit, API, библиотеки, логирование, log4j, slf4j, logback, JSON, HTML, Apache Commons, Unit тестирование, XML, JDBC, HTML, Microsoft Excel, Microsoft Word, PDF.
1. Логирование
Библиотеки по логированию являются хорошо изученными Java-сообществом по причине их надобности почти в любом проекте. Логирование – это важная составляющая любого приложения, поскольку по хорошо составленным логам можно точно отследить, что происходит в приложении. Несмотря на то, что Java Development Kit поставляется с встроенной библиотекой по составлению логов, имеется большое количество альтернатив со своими плюсами и минусами, примерами таких библиотек являются Log4j, SLF4 и Logback.
Slf4j [1] служит абстракцией для различных фреймворков логирования (java.util.logging, logback, log4j), позволяя конечному пользователю подключать желаемую структуру логирования при развёртывании своего приложения.
Log4j [2] является наиболее популярной библиотекой по логированию от Apache.
Logback [3] предназначен как преемник проекта log4j, наращивающий свой функционал там, где функционал log4j заканчивается.
2. Работа с JSON
В современном мире веб-сервисов и интернета вещей (IoT) JSON становится основополагающим протоколом для передачи данных от клиента к серверу. JSON заменил XML как наиболее предпочтительный независимый от платформы способ передачи информации способом. К большому сожалению, в рамках стандартных библиотек Java всё ещё нет библиотеки по работе с JSON, но, к счастью, есть много хороших сторонних альтернатив, которые предоставляют возможности как по анализу, так и по созданию сообщений на основе JSON. Примерами таких библиотек являются Jackson и Gson [4].
3. UNIT тестирование
Модульное тестирование – это очень важная вещь, которая отличает среднестатистического разработчика от хорошего. Программисты часто отговариваются от написания модульных тестов, но настоящей причиной этого является отсутствие опыта и знаний о популярных библиотеках по созданию модульных тестов. Примерами таких библиотек являются Junit [5], Mockito [6] и PowerMock [7].
4. Общецелевые библиотеки
Разработчику Java доступны хорошие библиотеки общего назначения, примерами которых являются Apache Commons [8] и Google Guava [9]. Включение этих библиотек в свои проекты может упростить большое количество задач. Написание своих версий уже давно существующих процедур является «изобретением велосипеда», поэтому предпочтительным является использование проверенных и более оптимизированных библиотек для экономии времени и ресурсов.
5. Работа с XML
Существует огромное множество библиотек по работе с XML, выбор которых зависит от требований проекта и личного предпочтения конкретного разработчика.
При использовании DOM [10] вся структура XML загружается в память, после чего возможно использование хорошо известных методов.
Использование SAX Parser [11] предпочтительно исключительно для чтения XML–документа. Данный парсер считывает документ, после чего вызывает соответствующие методы для работы с ним. Есть методы для перехода в начало или конец документа, элемента и т.д.
6. Работа с Excel
Иногда требованием к приложению на Java является функционал по импорту и экспорту данных в электронные таблицы Microsoft Excel. В таком случае может потребоваться помощь Apache POI [12]. Apache POI – это очень богатая библиотека, которая позволяет читать и записывать файлы XLS из под приложения на Java.
7. Работа с байткодом
Если вы пишете фреймворк или библиотеки, которые генерируют или взаимодействуют с байт–кодами, то потребуется соответствующая библиотека. Такие библиотеки позволяют читать и изменять байт–код, созданный приложением. Некоторые из популярных библиотек по работе с байт–кодом в Java – это javassist и Cglib Nodep.
8. Подключение к базам данных
Какой инструмент Вы будете использовать, когда появится надобность сопоставления Java-класса таблице в базе данных? Оказывается, в Java есть разные способы сделать это:
- JDBC, низкоуровневый способ подключения к базе данных;
- более удобные и легкие среды SQL, такие как jOOQ или абстракция JDBC Spring;
- полноценные ORM, такие как Hibernate или любая другая реализация JPA.
Несмотря на возможность использования различных пакетов, Java-разработчику необходимо, как минимум, иметь базовое предоставление о JDBC, так как любые библиотеки по подключению к базам данным в Java имеют JDBC как основополагающий инструмент «под капотом».
9. Работа с PDF
Подобно Microsoft Excel, а также Microsoft Word, PDF является еще одним широко распространённым форматом. Если потребуется функционал по работе с PDF-файлам в Java-приложении, например при экспорте отчётных данных в PDF, возможно использование библиотеки iText и Apache FOP. Обе библиотеки предоставляют полезные функции, связанные с PDF, но, несмотря на это, iText обладает более богатым функционалом.
10. Работа с коллекциями
Несмотря на то, что JDK имеет богатый функционал по работе с коллекциями, имеются некоторые внешние библиотеки, предоставляющие более широкий спектр возможностей, например, Apache Commons Collections, Google Collections и Trove. Библиотека Trove [13] является в особенности полезной, так как она обеспечивает ресурсную эффективность при с регулярными и примитивными коллекциями в Java.
11. Работа с датами и временем
До Java 8 библиотеки по работе с датами и временем имели большое количество недостатков, они не были безопасными в многопоточных приложениях, были иммутабельны и, в целом подверженными ошибкам, потому многие Java-разработчики полагались на библиотеку JodaTime [14] для реализации своего функционала по работе с датами и временем. Начиная с версии Java 8 отсутствуют причин использовать JodaTime, поскольку вся требуемая функциональность уже реализована в стандартных библиотеках, но, если Вы работаете в более старой версии Java, на JodaTime стоит обратить внимание.
12. Работа с электронной почтой
Библиотеки javax.mail, а также Apache Commons Email предоставляют API для отправки электронной почты, построенный на основе JavaMail API.
13. Работа с HTML
Подобно JSON и XML, HMTL – еще один распространенный формат, с которым многим из нас приходится иметь дело. К счастью, существует jsoup, который значительно упрощает работу с HTML в Java–приложении. К тому же имеется возможность использовать JSoup не только для анализа HTML, а также для создания HTML–документов.
Данная библиотека предоставляет очень удобный функционал по извлечению и обработке данных с использованием лучших методов DOM, CSS и jquery. jsoup реализует спецификацию WHATWG HTML5 и анализирует HTML в той же модели DOM, что и современные браузеры.
14. Библиотеки для работы с криптографией
Пакет Apache Commons содержит различные кодеры и декодеры с использованием разнообразных форматов как Base64 и Hexadecimal. В дополнение к этому данная библиотека также поддерживает набор утилит фонетического кодирования.
15. Библиотеки по работе с сетями
Некоторыми из полезных библиотек по работе с сетями являются Netty и Apache MINA [15]. Если Вашей задачей является составление приложения, которое реализует низкоуровневые сетевые задачи, то обратите своё внимание в сторону данных библиотек.
Список литературы:
- Simple Logging Facade for Java (SLF4J) – электронный ресурс, URL: http://www.slf4j.org (дата обращения: 12.02.2021)
- Apache Log4j 2 – электронный ресурс, URL: https://logging.apache.org/log4j/2.x/ (дата обращения: 12.02.2021)
- Logback Project – электронный ресурс, URL: http://logback.qos.ch (дата обращения: 12.02.2021)
- «Сравниваем Java-библиотеки для работы с JSON: JSON.simple, GSON, Jackson и JSONP» // Tproger – электронный ресурс, URL: https://tproger.ru/translations/java-json-library-comparison/ (дата обращения: 12.02.2021)
- JUnit 5 – электронный ресурс, URL: https://junit.org/junit5/ (дата обращения: 12.02.2021)
- Tasty mocking framework for unit tests in Java // Mockito – электронный ресурс, URL: https://site.mockito.org (дата обращения: 12.02.2021)
- PowerMock // Github – электронный ресурс, URL: https://github.com/powermock/powermock (дата обращения: 12.02.2021)
- Apache Commons – электронный ресурс, URL: https://commons.apache.org (дата обращения: 12.02.2021)
- Guava: Google Core Libraries for Java // Github – электронный ресурс, URL: https://github.com/google/guava (дата обращения: 12.02.2021)
- Материал из Википедии – свободной энциклопедии, Document Object Model – электронный ресурс, URL: https://ru.wikipedia.org/wiki/Document_Object_Model (дата обращения: 12.02.2021)
- Простой SAX парсер на Java // Quizful – электронный ресурс, URL: http://www.quizful.net/post/sax-parser-java (дата обращения: 12.02.2021)
- Apache POI - the Java API for Microsoft Documents – электронный ресурс, URL: https://poi.apache.org (дата обращения: 12.02.2021)
- GNU Trove High performance collections for Java – электронный ресурс, URL: http://trove4j.sourceforge.net/html/overview.html (дата обращения: 12.02.2021)
- Joda-Time – электронный ресурс, URL: https://www.joda.org/joda-time/ (дата обращения: 12.02.2021)
- Netty project – электронный ресурс, URL: https://netty.io (дата обращения: 12.02.2021)
- Apache MINA– электронный ресурс, URL: https://mina.apache.org (дата обращения: 12.02.2021)
дипломов
Оставить комментарий