Собери свою идеальную Java. 5 полезных библиотек
Рассмотрим несколько библиотек для Java, которые помогут сделать код лаконичнее, а его написание более приятным и быстрым.
Во время разработки часто встречаются ситуации, когда базовые возможности языка не удовлетворяют требованиям поставленных задач. В таких случаях есть два пути:
Запастись кофе, морально подготовиться к нескольким «выстрелам себе в ногу» и в конце концов изобрести велосипед, который будет выполнять необходимый функционал (например, парсинг какого-нибудь xlsx формата),
- В несколько действий подключить библиотеку, уже написанную другими программистами, и тем самым сэкономить потенциально большое количество времени и сил, которые можно потратить на более полезные дела, будь то исправление багов или сокращение тех. долга.
В этой статье будет приведено 5 библиотек и фреймворков для Java, о которых полезно знать и применять их в работе, чтобы не нарушать один из принципов программирования – KISS.
1. Guava
Guava — это сборник множества библиотек от Google. Он включает в себя:
- несколько новых типов коллекций, неизменяемые коллекции,
- библиотеку реализующую работу с графами,
- работу с вводом\выводом, хешированием, кэшированием, строками и многое другое.
Например, часто в коде можно встретить повторяющиеся блоки, реализующие низкоуровневую конкатенацию строк:
Согласитесь, код выглядит лаконичнее, понятнее, а, главное, выполняет эту операцию самым оптимальным образом.
На эту библиотеку определённо стоит обратить внимание по нескольким причинам. Во-первых, она разработана спецами из Google. Во-вторых, эти же спецы из Google сами её используют. Это звучит как очень хорошая рекомендация.
Более подробно можно ознакомиться на GitHub
2. Google-json (GSON)
Google-json, как понятно из названия, ещё одна разработка прямиком из Google. Библиотека реализует механизмы работы с форматом JSON, а именно приведение Java-объектов в этот формат и обратно.
Примерно вот так выглядит сериализация и десериализация с помощью GSON:
Как видно, перевод объекта проходит с помощью минимального количества легкочитаемого и понимаемого кода. Особенно эта библиотека пригодится при работе с RESTful приложениями, которые общаются преимущественно с помощью json.
Более подробно почитать можно всё так же на GitHub
3. Log4j
Log4j – библиотека, взявшая на себя обязанности по избавлению разработчика от лишней головной боли при организации логирования в приложении. Она инкапсулирует почти все операции (прямая работа с файлами логов, оформление логов, разграничение уровней логирования), предоставляя разработчику удобный и минималистичный интерфейс взаимодействия с логами.
После подключения и быстрой настройки библиотеки работа с логами будет сведена к следующему коду:
После выполнения кода выше в лог будет записано что-то вроде:
2021-03-24 13:00 DEBUG MainClass:5 — Debug message
2021-03-24 13:00 ERROR MainClass:6 – Error message
2021-03-24 13:00 WARN MainClass:7 — Warning message
2021-03-24 13:00 INFO MainClass:8 — Info message
Почитать подробнее можно на сайте разработчика.
4. Blade
Blade – это фреймворк для построения web-приложений. На борту он имеет базовый Auth функционал, нативную возможность формировать json ответы, поддержку большого количества расширений и достаточно высокую производительность. У людей, которые знакомы с Spring, может возникнуть вопрос – а зачем нужен Blade, если есть Spring, который умеет всё то же самое и даже больше? Ответ прост. Blade очень легковесен – его исходный код занимает всего 500kb, поэтому его выгодно использовать в маленьких проектах вместо тяжеловесного Spring.
Более подробно можно ознакомиться на GitHub
5. libGDX
libGDX – настоящий мультимедийный комбайн. Если вам нужно отображать какую-либо графику, а если ещё и со звуком, то определённо стоит обратить внимание на этот фреймворк. Помимо вывода графики посредством предоставления высокоуровневого интерфейса над OpenGL, libGDX может предложить работу со звуком, работу с пользовательским вводом, собственную стейт-машину, работу с физикой с помощью box2D и многое другое.
Подробнее можно прочитать на сайте разработчика.
Целью этой статьи не является перечисление всех самых-самых библиотек или фреймворков для Java. Цель — показать, какое многообразие решений уже существует и убедить читателя в том, что зачастую вовсе необязательно изобретать свой велосипед, и нет ничего зазорного в том, чтобы использовать уже готовое решение того или иного вопроса.
Почти любой джавист сидит на спринге.
Минус GSON
Минус Log4j
Уже 6 или более лет вышла 8 джава со стримами , зачем тогда нужна гуава, если остальные ее фичи так или иначе есть в спринге ? В 9 синтаксис неизменяемой коллекции ещё проще.
Blade последний раз обновлялся год назад. Для веб фреймворка это скорее смертный приговор. Есть сервлет апи, есть jetty. Вот тебе и набор для простого API