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

В этот релиз попало около 2300 закрытых задач и 12 JEP'ов. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.

Из интересных фич лично для меня можно отметить:
1. String Templates (Second Preview) (JEP 459), которые, к сожалению, уходят на второй раунд preview без изменений.
2. Stream Gatherers (Preview) (JEP 461)
3. Class-File API (Preview) (JEP 457)
4. Structured Concurrency (Second Preview) (JEP 462), который тоже уходит на второй раунд preview без изменений.
5. Scoped Values (Second Preview) (JEP 464) тоже уходит на второй раунд preview без изменений.
6. Foreign Function & Memory API (JEP 454), которое наконец-то стабилизировалось!!!

https://habr.com/ru/articles/801467/
👍4🔥3
Всё ещё используете If/else валидацию в Spring 6.0+ / SpringBoot 3.0+?

В статье рассмотрены аннотации @Valid, и @Validated, которые используются для запуска процесса валидации при обработке запроса в Spring.

@Valid — это стандартная аннотация из спецификации Java Bean Validation, также известной как JSR-303.

@Validated — это специфическая для Spring аннотация, предоставляемая самим Spring.

https://habr.com/ru/companies/otus/articles/799987/
👍4🔥2
Awesome IT links

Сборник ссылок на ресурсы для изучения Java. Список будет расширяться.

https://github.com/RodinDenis/awesome-it-links
🔥6👍4
Опять транзакции…

Транзакция нужна когда у нас есть несколько операций, которые меняют данные в БД. В противном случае смысла в ней никакого нет и база сама откроет и закроет транзакцию внутри себя, без дополнительных указаний извне. Речь в данной статье будет идти о клиентском управлении транзакциями, через аннотацию Spring @Transactional и базу Postgres.

https://habr.com/ru/articles/803395
👍7
System Design 101

Во многих компаниях на собеседованиях senior разработчиков этап System Design становится обязательным. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы.

https://habr.com/ru/articles/770564/
🔥7
Красивый код с Optional и Either

Класс Optional хорошо подходит для ситуаций с отсутствующим значением как прекрасная альтернатива использованию null, но что делать если мы хотим в таких случаях возвращать разные объекты? Например если мы хотим работать с исключениями в функциональном стиле?

Есть несколько библиотек решающих эту задачу: vavr, fugue, lambda и either.

Either самая легковесная из них и детали работы с ней рассмотрены в статье.

https://dzone.com/articles/the-beauty-of-java-optional-and-either
🔥5
Sealed (закрытые) классы Java: создание надежных и безопасных приложений

Sealed классы Java ограничивают набор классов, которые могут их реализовать. Это поможет предотвратить ряд ошибок и сделать код более удобным для сопровождения.

https://dzone.com/articles/java-sealed-classes-building-robust-and-secure-app
👍3🔥3
Использование Java Record-ов как DTO в Spring Boot 3

В статье описывается как наилучшим образом использовать Java Record-ы для работы с базой данных и API в Spring Boot 3 с Hibernate 6.

https://dzone.com/articles/how-to-best-use-java-records-as-dtos-in-spring-boo
👍5👎1🔥1
Эффективность стримов в Java

Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.

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

https://habr.com/ru/articles/807647/
👍2🔥2
Материалы Spring Academy Pro стали доступны бесплатно

Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.

https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
🔥7👍2
Spring Boot Starter: практически, принципиально и подробнее. Часть 1

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

А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.

https://habr.com/ru/companies/ru_mts/articles/811693/
👍6🔥1
Появился новый канал с аудио обзорами различных материалов и событий из мира IT.

Если вам интересен такой формат, то накидайте «огоньков» ))

https://t.me/java_guru_podcast
🔥12👍1
Audio
Аудио обзор книги "Kubernetes for Developers"
🔥2
Как начать писать на Java в VSCode

Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.

В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».

https://habr.com/ru/companies/cdek_blog/articles/811631/
🔥4👎1
Compiler Explorer — уникальный проект для исследования компилируемого кода

Это просто космический инструмент да еще и open source!!!

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

Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.

В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))

https://habr.com/ru/companies/ruvds/articles/815675/
🔥6👍3
Гарвардский курс по основам программирования CS50 (бесплатно)

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

https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
👍4🔥2
Practice SQL - сайт для практики SQL запросов.

Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.

https://www.sql-practice.com/
👍5🔥3🤩1
Coding game

Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )

https://www.codingame.com/start/
🔥42
Криптография на службе у stateless

Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.

https://habr.com/ru/companies/nspk/articles/808199/
👍4🔥1
Генерация OpenAPI из Spring Boot MVC

При работе с OpenAPI есть свои «подводные камни». Некоторые из них описаны в этой статье. В примере используется Spring Boot 3 и OpenAPI 3.

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