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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

https://www.sql-practice.com/
Coding game

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

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

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

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

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

https://habr.com/ru/articles/814061/
Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком

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

Подборка решений достаточно интересная в статье.

https://habr.com/ru/companies/magnit/articles/814573/
Гайд по использованию JUnit 5, Mockito и AssertJ для проверки поведения кода

В статье показано как использовать JUnit, Mockito и AssertJ для тестирования кода, а также JaCoCo для оценки покрытия тестами на примере простого мини-сервиса.

https://habr.com/ru/companies/banki/articles/814485/
Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов

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

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

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

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

https://habr.com/ru/companies/nspk/articles/709822/
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
Как протестировать логику консьюмеров и продюсеров и не сгореть? Spring Boot 3, Spring Kafka

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

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

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

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

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

https://habr.com/ru/companies/haulmont/articles/814207/
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