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

Джунам прочитать будет полезно. Пакеты в Java появились с самого начала, во времена, когда язык еще назывался Oak. Java-пакеты реализуют так называемое пространство имен (namespace), позволяющее использовать в проекте файлы с одинаковыми именами. Такой подход существует с давних времен во многих языках.

https://habr.com/ru/articles/755654/
Все что вам нужно знать о таймаутах

В статье хорошо раскрыта тема таймаутов и даны ссылки на доп материал. В статье дается пример с использованием CompletableFuture, но лучше конечно полагаться на готовые решения типа Resilience4j.

https://engineering.zalando.com/posts/2023/07/all-you-need-to-know-about-timeouts.html
Аудит пользователей Spring Data JPA

В статье приводится одно из возможных решений по аудиту изменений в базе. Хочу также отметить, что с soft delete-ами нужно быть аккуратными. Обратите также внимание на комментарии к статье.

https://habr.com/ru/companies/nlmk/articles/757866/
👍1🔥1
Высокие технологии или дешевые фокусы с двойным дном

Мне никогда не приходила идея мокать null. В этом случаи наблюдается достаточно интересный эффект, который на первый взгляд похож на «магию».

https://habr.com/ru/articles/759344/
👍4👏1
Прикольная игрушка про историю развития Spring

Браузерная игрушка в стиле «Марио», созданная к 20-летию Spring. Управляя листочком, мы узнаем о самых важных вехах развития фреймворка с 2003 года.

https://springone.io/history-of-spring
👍2🔥1
JDBC Profiling with VisualVM

Думаю многие из вас пользовались старым добрым VisualVM. В нем есть прекрасная возможность попрофилировать взаимодействие с базой. В частности можно поисследовать медленные запросы к базе, а также проблему N+1

https://vladmihalcea.com/jdbc-profiling-visualvm/
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