Java guru
934 subscribers
1 photo
1 video
234 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
MapStruct — смаппь меня, если сможешь

MapStruct это библиотека позволяющая переносить данные из одних объектов в другие. В рамках переноса данных можно настроить преобразования над ними. Чаще всего ее используют для работы с DTO. У нее как и у Lombok есть не только фанаты, но и хейтеры. В комментах под статьей они опять схлестнулись в жарком споре ))

https://habr.com/ru/articles/818489/
Создание дистрибутивов для разных операционных систем в Java 21 и 22

Можно ли «запаковать» java приложение в exe файл для Windows? Да!

Раньше для этого активно использовались сторонние продукты, но в самой JDK такая возможность тоже развивалась. В статье приведена краткая хронология, а также описано каким образом эту задачу решает IntelliJ IDEA.

https://habr.com/ru/companies/jugru/articles/816981/
Стенд для нагрузочного тестирования на Testcontainers

Обычно Testcontainers используют для интеграционных тестов, но в статье приводится пример их использования для нагрузочных тестов. Решение конечно спорное особенно если стенд нагрузочного тестирования будет сильно отличаться от промышленного, но окей ))

Из интересного там приводятся примеры для Gatling, WRK и Yandex.Tank.

https://habr.com/ru/articles/819589/
Оптимизация кеширования в Spring Boot

Для улучшения производительности приложений иногда приходится прибегать к кешированию.
В Spring Boot есть удобные инструменты для добавления кеширования.В
статье рассказывается как добиться оптимального использования кеша.

https://digma.ai/top-7-techniques-to-optimize-caching-in-spring-boot/#custom-eviction-policies

#spring #tunning
Как публиковать библиотеку в Maven Central Portal в 2024 году

Начиная с 12 марта 2024 года регистрация на OSSRH портале теперь недоступна.

Процесс публикации можно разбить на следующие шаги:

1. Регистрация на Central Portal и верификация namespace
2. Создания GPG ключа для подписи артефактов
3. Локальная публикация проекта для теста
4. Подключение JReleaser к проекту и публикация локально
5. Настройка Github Actions для автоматической публикации

Более детально процесс описан в статье.

https://habr.com/ru/articles/830630/
Какой язык программирования самый лучший по мнению нейросети Suno???

Конечно же Java!!! А как мы знаем нейросети еще не научились обманывать...они могут только галлюцинировать ))

На запрос "The best programming language" нейросеть Suno написала песню про Java ))

https://suno.com/song/9f05595d-6aa1-4d6c-9144-cd019e78c1e4
«Скрипач не нужен» или что делать с тестовыми паролями

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

Автор статьи пошел по очень нетривиальному пути. Он решил через Java Agent манипулировать загружаемыми классами для достижения цели.

https://habr.com/ru/articles/823100/
AlgoMonster

Появилось довольно интересное дополнение к Leetcode для подготовки к техническому собеседованию в западные компании. AlgoMonster разработан программистами из Google, которые на своем опыте знают на сколько сложно качественно подготовиться к собеседованию как минимум в Google ))

https://algo.monster/dashboard
Нереальная локализация

Статья о том как локализовать обычное корпоративное Java-приложение на.. несуществующие фантастические языки: Клингонский и Р’льех. Про Клингонский я слышал и даже одно время пытался учить, а вот про Р’льех для меня открытие ))

С точки зрения Java стека статья вас особо не удивит, но большинство скорее всего если и сталкивалось с задачами локализации, то скорее всего существующих языков для которых много чего работает сразу «из коробки».

https://habr.com/ru/articles/823836/
Крупнейшая библиотека алгоритмов с открытым исходным кодом на GitHub

Реализация алгоритмов есть на Java и других распространненных языках. Хороший ресурс для подготовки к собесам.

https://the-algorithms.com/ru#aboutUs
JPA Entity. Загрузи меня не полностью

Знали ли вы, что JPA сущности можно загружать частично?
Если да, то сколько вы знаете способов загружать сущности JPA частично?

Автор статьи нашел 21 способ!

https://habr.com/ru/companies/spring_aio/articles/833918/
Новое событие в JFR для диагностики использования устаревшего (deprecated) кода

В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется.

В больших проектах найти куски устаревшего кода в куче зависимостей задача не тривиальная и требующая хорошей автоматизации. В этой ситуации к нам приходит на помощь новый тип события в JFR. Он был добавлен в JDK 22.
Давайте посмотрим на простом примере как это работает.

https://habr.com/ru/articles/837052/

#jfr
Шпаргалка по сложности алгоритмов

Все наглядно и без "лишней воды". Может пригодиться для собесов.

https://www.bigocheatsheet.com/pdf/big-o-cheatsheet.pdf

#algorithm #interview
Устаревшие мифы про Java

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

Если тема и формат понравится, то будет больше публикаций по этой теме.

https://habr.com/ru/articles/842384/
Лучшие практики для Java-приложений в Kubernetes

В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.

https://piotrminkowski.com/2023/02/13/best-practices-for-java-apps-on-kubernetes/
Кстати, с Днем Программиста ))
Middle-starter-pack по spring data

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

Код всегда работает так как мы его написали (или не мы), если мы считаем что код работает не так, значит мы что-то не знаем/не учитываем.

Кейсы разобраны довольно интересные.

https://habr.com/ru/articles/824936/
Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать

В статье говорится об одном из lock-free алгоритмов в Java и разбирается связанное с ним ключевое слово volatile и паттерн immutable.

https://habr.com/ru/companies/bercut/articles/822253/