Найти в Дзене
Bereshpolov

Перестаньте писать свой собственный код — используйте вместо этого эти библиотеки Java

Java эволюционировала. Экосистема стала зрелой. Библиотеки проверены в бою. И теперь современные функции Java, такие как записи, HttpClient, новые методы String и Optional, делают написание чистого, лаконичного кода проще, чем когда-либо, — без необходимости делать все самостоятельно. В этой статье расскажу Вам 15 вещей, которые вам следует прекратить разрабатывать с нуля, — и какие современные инструменты и библиотеки Java следует использовать вместо этого. Если вы все еще создаете JSON с помощью конкатенации строк, остановитесь сейчас. Используйте Jackson для записи и чтения JSON: или для чтения: Jackson поддерживает: Современный совет: используйте @JsonInclude, @JsonProperty и записи Java для чистого сопоставления JSON. Используйте MapStruct: Бонус: MapStruct теперь поддерживает сопоставление с Records Java «из коробки». Используйте: Java 11+ HttpClient Раньше нам нужен был OkHttp или Apache HttpClient. А теперь? Используйте: Lombok или Java Records Все еще пишете бойлерплейт? Испо
Оглавление

Java эволюционировала. Экосистема стала зрелой. Библиотеки проверены в бою. И теперь современные функции Java, такие как записи, HttpClient, новые методы String и Optional, делают написание чистого, лаконичного кода проще, чем когда-либо, — без необходимости делать все самостоятельно.

В этой статье расскажу Вам 15 вещей, которые вам следует прекратить разрабатывать с нуля, — и какие современные инструменты и библиотеки Java следует использовать вместо этого.

1. Писать свой собственный JSON Parser

Если вы все еще создаете JSON с помощью конкатенации строк, остановитесь сейчас.

Используйте Jackson для записи и чтения JSON:

-2

или для чтения:

-3

Jackson поддерживает:

  • Records (Java 14+)
  • Optional
  • Date/Time
  • Кастомные сериализаторы

Современный совет: используйте @JsonInclude, @JsonProperty и записи Java для чистого сопоставления JSON.

2. Ручной маппинг Сущностный и DTOs

Используйте MapStruct:

-4

Бонус: MapStruct теперь поддерживает сопоставление с Records Java «из коробки».

3. Создание кастомных HTTP-клиентов

Используйте: Java 11+ HttpClient

Раньше нам нужен был OkHttp или Apache HttpClient. А теперь?

-5
  • Встроенный, неблокируемый, поддерживает асинхронность и HTTP/2.
  • В 80% случаев использования внешняя библиотека не требуется.

4. Писать Getters, Setters, Equals, HashCode

Используйте: Lombok или Java Records

Все еще пишете бойлерплейт? Используйте Lombok:

-6

Или просто переключитесь на Records:

-7

Java Records иммутабельны, лаконичны и идеально подходят для DTO.

5. Написание собственной логики повтора

Используйте: Resilience4j

Прекратите это делать:

-8

Вместо этого используйте это:

-9

Включает в себя откат, автоматический выключатель, ограничитель скорости, откат.

6. Ведение журнала с помощью System.out.println()

Используйте: SLF4J + Logback или Log4j2

-10

Вы получите: Структурированные журналы, уровни, файлы журналов и интеграция с ELK/Grafana.

Бонус: используйте параметризованные журналы, чтобы избежать конкатенации строк:

-11

7. Написание строковых утилит

Используйте: Apache Commons Lang

-12

Включает DateUtils, ArrayUtils, NumberUtils — экономит время и уменьшает количество ошибок.

8. Создание фейковых данных для тестирования

Используйте: Jave Faker DataFaker

-13

Отлично подходит для тестов, демонстраций или заполнения баз данных.

9. Создание собственных хелперов по дате/времени

Используйте: Java.Time (Java 8+)

-14

Используйте Period, Duration, ZonedDateTime, ChronoUnit — все встроено.

Бонус: больше никаких ошибок с датой/календарем или кошмаров с часовыми поясами.

10. Написание логики проверки вручную

Используйте: Hibernate Validator (JSR 380)

-15

Добавим в контроллер:

-16

Более чистая проверка входных данных, встроенная интеграция со Spring Boot.