Java guru
4.4K subscribers
1 photo
1 video
1 file
266 links
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Download Telegram
Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов

В статье обсуждаются доступные способы оптимизации Spring-контекста для тестов. Помимо подхода с сегментацией (test slicing) там также есть примеры более тонкой настройки.

В комментариях к статье также порадовал пример с иерархией контекстов.

https://habr.com/ru/companies/tbank/articles/816051/
🔥2👍1
Особое мнение: смотрим на нагрузочные тесты как на функциональные

Многие команды сейчас переходят на Gatling для задач нагрузочного тестирования. В статье приводится пример не просто использования Apache JMeter для нагрузочного тестирования, а построение «непрерывного нагрузочного тестирования» в рамках CI/CD. Стек TestNG / Cucumber / Allure, для задач CI/CD используется Jenkins. В комментариях к статье автору предлагают еще использовать JMeter DSL. Тоже достаточно интересный кейс.

https://habr.com/ru/companies/nspk/articles/709822/
🔥4
Gatling vs JMeter DSL

В продолжение темы из прошлого поста. По ссылке сравнение Gatling и JMeter DSL от автора JMeter DSL. Оно достаточно субъективно, но дает понимание мотивации автора на создание JMeter DSL. По факту у Gatling только в версии 3.7 появился Java friendly API. Остальные минусы указанные в статье думаю Gatling быстро нагонит, но попробовать JMeter DSL стоит особенно если вы раньше много работали с JMeter.

https://abstracta.github.io/jmeter-java-dsl/motivation/#comparison-table
🔥3👍2
Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka

В статье автор перебирает разные подходы к тестированию продюсеров и консьюмеров. В конце довольно интересное решение с использованием autoStartup на @KafkaListener. Хотя как отмечено в комментариях к статье он мог бы проще добиться цели вынеся логику из консьюмеров и продюсеров в отдельные сервисы )

https://habr.com/ru/companies/alfastrah/articles/816057/
🔥31
Hazelcast: эксперименты с настройкой и долговременным хранением больших объектов in-memory

Статья будет полезна для тех, кто поддерживает приложения на Java, так как большая ее часть посвящена анализу работы G1 GC, знакомству с соответствующими инструментами и особенностями тюнинга GC, в частности для очень больших heap`ов. А также тем, кто пытается разобраться, на что способен Hazelcast, и для чего его можно применить.

https://habr.com/ru/companies/croc/articles/816973/
🔥4
Amplicode: учим IDE говорить на языке фреймворка

Довольно интересная альтернатива IntelliJ IDEA Ultimate. По факту это довольно прокаченный плагин к IntelliJ IDEA Community, который пока доступен бесплатно. Напрягает правда неопределенность с планами по монетизации этого плагина.

https://habr.com/ru/companies/haulmont/articles/814207/
👍2🔥1🤩1
Azul CEO sees Java’s AI future as bright

Интересное интервью от CEO компании Azul. Я разделю его точку зрения относительно того, что в ближайшее время Java начнет играть более значимую роль на поприще AI. Сейчас при упоминании AI первый язык приходящий в голову - Python, но он по большей части лишь «обертка» над AI логикой в нативных библиотеках. По мере роста потребности бизнеса в интеграции AI в существующие корпоративные приложения и более быстрого развития AI движков будет появляться все больше возможностей в самой Java и ее экосистеме.

https://www.infoworld.com/article/3715467/azul-ceo-sees-javas-ai-future-as-bright.html#tk.rss_java
👍3🔥3👏1
MapStruct — смаппь меня, если сможешь

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

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

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

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

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

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

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

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

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

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

#spring #tunning
🔥4👍2
Как публиковать библиотеку в 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/
😱2👍1🔥1😁1
Какой язык программирования самый лучший по мнению нейросети Suno???

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

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

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

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

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

https://habr.com/ru/articles/823100/
👍4🔥2
AlgoMonster

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

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

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

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

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

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

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

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

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

https://habr.com/ru/companies/spring_aio/articles/833918/
🔥7