Собери свою идеальную Java. 5 полезных библиотек

Рассмотрим несколько библиотек для Java, которые помогут сделать код лаконичнее, а его написание более приятным и быстрым.

Собери свою идеальную Java. 5 полезных библиотек

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

  • Запастись кофе, морально подготовиться к нескольким «выстрелам себе в ногу» и в конце концов изобрести велосипед, который будет выполнять необходимый функционал (например, парсинг какого-нибудь xlsx формата),

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

В этой статье будет приведено 5 библиотек и фреймворков для Java, о которых полезно знать и применять их в работе, чтобы не нарушать один из принципов программирования – KISS.

1. Guava

Guava — это сборник множества библиотек от Google. Он включает в себя:

  • несколько новых типов коллекций, неизменяемые коллекции,
  • библиотеку реализующую работу с графами,
  • работу с вводом\выводом, хешированием, кэшированием, строками и многое другое.

Например, часто в коде можно встретить повторяющиеся блоки, реализующие низкоуровневую конкатенацию строк:

StringBuilder stringBuilder = new StringBuilder(); for (Iterator<String> i = cars.iterator(); i.hasNext()) { If (stringBuilder.length() != 0) { stringBuilder.append(“, ”); } stringBuilder.append(i.next()); } System.out.println(“Cars: ”, sb.toString()); Да, этот код мог бы быть короче и записан в одну строку: System.out.println(“Cars: ”, String.join(“, ”, cars)); Но это всё ещё не является оптимальным решением. Здесь-то и пригодится функционал Guava по работе со строками: System.out.println( “Cars: ”, Joiner.on(“, ”).join(cars); );

Согласитесь, код выглядит лаконичнее, понятнее, а, главное, выполняет эту операцию самым оптимальным образом.

На эту библиотеку определённо стоит обратить внимание по нескольким причинам. Во-первых, она разработана спецами из Google. Во-вторых, эти же спецы из Google сами её используют. Это звучит как очень хорошая рекомендация.

Более подробно можно ознакомиться на GitHub

2. Google-json (GSON)

Google-json, как понятно из названия, ещё одна разработка прямиком из Google. Библиотека реализует механизмы работы с форматом JSON, а именно приведение Java-объектов в этот формат и обратно.

Примерно вот так выглядит сериализация и десериализация с помощью GSON:

Gson gson = new GsonBuilder().create(); ExampleClass origin = new ExampleClass(); // Сериализация String json = gson.toJson(ec); // Десериализация ExampleClass clone = new Gson.fromJson(json, ExampleClass.class);

Как видно, перевод объекта проходит с помощью минимального количества легкочитаемого и понимаемого кода. Особенно эта библиотека пригодится при работе с RESTful приложениями, которые общаются преимущественно с помощью json.

Более подробно почитать можно всё так же на GitHub

3. Log4j

Log4j – библиотека, взявшая на себя обязанности по избавлению разработчика от лишней головной боли при организации логирования в приложении. Она инкапсулирует почти все операции (прямая работа с файлами логов, оформление логов, разграничение уровней логирования), предоставляя разработчику удобный и минималистичный интерфейс взаимодействия с логами.

После подключения и быстрой настройки библиотеки работа с логами будет сведена к следующему коду:

final static Logger logger = Logger.getLogger(MainClass.class); logger.debug(“Debug message”); logger.error(“Error message”); logger.warn(“Warning message”); logger.info(“Info message”);

После выполнения кода выше в лог будет записано что-то вроде:

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. Цель — показать, какое многообразие решений уже существует и убедить читателя в том, что зачастую вовсе необязательно изобретать свой велосипед, и нет ничего зазорного в том, чтобы использовать уже готовое решение того или иного вопроса.

22
1 комментарий

Почти любой джавист сидит на спринге.
Минус GSON
Минус Log4j
Уже 6 или более лет вышла 8 джава со стримами , зачем тогда нужна гуава, если остальные ее фичи так или иначе есть в спринге ? В 9 синтаксис неизменяемой коллекции ещё проще.
Blade последний раз обновлялся год назад. Для веб фреймворка это скорее смертный приговор. Есть сервлет апи, есть jetty. Вот тебе и набор для простого API

4