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

Проблема FizzBuzz - это классическая задача, которая часто встречается на собеседованиях для программистов. В статье дается решение с использованием Stream API.

https://habr.com/ru/articles/760192/
Искусство ETL. Пишем собственный движок SQL на Spark [часть 1 из 5]

В данной серии статей подробно рассказано о том, как написать на Java собственный интерпретатор объектно-ориентированного диалекта SQL с использованием Spark RDD API, заточенный на задачи подготовки и трансформации наборов данных.

https://habr.com/ru/articles/760504/
OOM: direct memory при работе с сетью TCP/IP через NIO в Java

Эта статья основана на реальной практике борьбы с "OutOfMemory: direct memory" в шине данных гибридной интеграционной платформы.

https://habr.com/ru/companies/bercut/articles/762254/
Кэширование контекста Spring между запусками тестов: как ускорить процесс локального тестирования

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

https://habr.com/ru/companies/jugru/articles/762632/
👍3
Microsoft начала выпускать сборки JDK 21, которые скоро станут доступны на Azure PaaS.

Кроме того, Microsoft анонсировала новый выпуск семантического ядра для Java версии 0.2.9, который, по ее словам, находится в альфа-состоянии. Семантическое ядро - это облегченный SDK для интеграции больших языковых моделей для генеративного искусственного интеллекта с обычными языками программирования. Новая библиотека поможет разработчикам усовершенствовать Java-приложения с помощью расширенного интеллекта за счет идиоматической интеграции больших языковых моделей.

https://www.infoworld.com/article/3707711/microsoft-ships-java-21-builds.html
Микросервисы победили. Или не совсем

В статье представлена довольно оригинальная точка зрения. Обязательно стоит почитать. Меня особенно порадовал коммент где описывается попытка спроектировать калькулятор используя микросервисы ))

https://habr.com/ru/companies/haulmont/articles/766188/
👍3🔥2
Создание и тестирование gRPC сервиса (Spring Boot приложение)

Эта статья будет полезна для тех, кто только начинает знакомиться с gRPC и ищет руководство по написанию и тестированию сервисов.

https://habr.com/ru/articles/767130/
👍1
Oracle представила расширение для разработки на Java для Visual Studio Code

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

https://www.infoworld.com/article/3709228/oracle-unveils-java-development-extension-for-visual-studio-code.html#tk.rss_java
Паттерны распределенных транзакций для микросервисов

В статье архитектор из Red Hat проводит анализ паттернов распределенных транзакций для микросервисов.

https://developers.redhat.com/articles/2021/09/21/distributed-transaction-patterns-microservices-compared#the_dual_write_problem
👍1
Java Unsafe API для низкоуровневого манипулирования памятью

В Java на самом деле есть возможность манипулирования памятью, но лучше не пользоваться механизмом Unsafe. Лучшая альтернатива для него Foreign Function & Memory API.

https://habr.com/ru/companies/otus/articles/770878/
🔥1
@Scheduled + @Async (в Spring Boot)


Допустим вам необходимо выполнять какое-то действие раз в минуту, например ходить в базу и смотреть есть ли там записи по которым не выполнилась отправка во внешнюю систему и если такие есть то выполнить отправку повторно (доотправка).

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

И мы начали замечать, что во время формирования отчета (а мы помним что это длится 5 минут), первый джоб доотправки не выполняется, почему так присходит?

https://habr.com/ru/articles/771112/
🔥3
Жук, нумерология, хеш или ничо? Оптимизация работы с путями

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

https://habr.com/ru/companies/cdek_blog/articles/771372/
👍1
Трейсы в Spring Boot 3 с использованием Zipkin и Kafka в качестве транспорта

Для трассировки приложений используется Zipkin. Транспортом является Kafka. В статье не решен вопрос со сквозным traceId, но ход мыслей конечно интересный )) вообще конечно решение на jaeger/opentelemetry было бы поинтереснее.

https://habr.com/ru/companies/alfastrah/articles/770566/
👍1
Новый фреймворк для микросервисов Helidon 4 от Oracle делает ставку на виртуальные потоки из Java 21

На рынке фреймворков для микросервисов появился довольно интересный конкурент от Oracle. Для достижения высокой производительности там делается ставка на виртуальные потоки, которые появились в Java 21. Произошел по факту переход от парадигмы управления потоками как «ограниченного ресурса» к парадигме «ресурса практически неограниченного и доступного по требованию». До Helidon 4 «под капотом» использовался всеми любимый Netty, а начиная с 4 версии Helidon перешел на новый сервер Nima, который также делает ставку на виртуальные потоки.

Я думаю, что в какой-то момент остальные фреймворки также «подтянутся», но уже сейчас стоит попробовать новые очень вкусные механики.


https://www.infoworld.com/article/3709929/oracle-helidon-4-java-microservices-framework-stresses-virtual-threads.html#tk.rss_java
🔥31
Ускоряем запуск Spring Boot-приложений в контейнере

Знаете ли вы, что Spring Boot-приложение в контейнере может запускаться за миллисекунды? При этом без ущерба для производительности, памяти, паритета окружений разработки-продакшена, без ограничений возможностей языка Java, и почти без изменения кода приложения. Но как? С помощью Liberty 23.0.0.10-beta…

https://habr.com/ru/companies/otus/articles/771738/
AI добрался и до JVM

Разработанная командой JVM в компании Oracle, Oracle Java Management Cloud Service представила искусственный интеллект для анализа и генерации рекомендаций по настройке, чтобы улучшить производительность java-приложений. В ролике показано, как он работает и как им пользоваться.

https://youtu.be/HwCW1RjQfd4
🔥3
Helidon 4 вышел, а никто и не заметил

Про Helidon 4 уже была ссылка на канале. Хочу с вами поделиться еще одной. Статья примечательна в том числе сравнением Helidon 4 и Spring. Можно сказать, что виртуальные потоки просто «творят чудеса».

https://habr.com/ru/companies/bar/articles/772726/
🔥1
Разработка высоконагруженного игрового WebSocket сервера на Java, Netty с поддержкой BattleRoyale/Matchmaking

Я люблю Netty. В статье неплохо описан процесс разработки бекенда для игрового сервера. Версия Java правда выбрана странная.

https://habr.com/ru/articles/774322/
👍3
Garbage Collection и JVM

JVM работает как хорошо отлаженный механизм, автоматически распределяя и освобождая память. Это и есть суть Garbage Collection. Это процесс, который автоматически находит и удаляет объекты, которые больше не используются вашим приложением. Благодаря этому, разработчики могут сосредоточиться на логике приложения, не беспокоясь о ручном управлении памятью.
Знание того, как работает GC и JVM, необходимо каждому Java-разработчику. Правильное управление ресурсами напрямую влияет на производительность и стабильность приложений.

https://habr.com/ru/companies/otus/articles/776342/
👍2
Java 20: огромные разреженные сегменты памяти

Знаете ли вы, что можно выделять сегменты памяти, которые больше, чем физический размер оперативной памяти вашего компьютера, и даже больше, чем размер всей вашей файловой системы?

Новая функция Foreign Function and Memory, которая во второй раз появляется  в Java 20, позволяет сопоставлять большие сегменты памяти с файлом.

https://habr.com/ru/articles/710664/
👍3