Java guru
Открыть в Telegram
Новости из мира Java, обзоры интересных библиотек и фреймворков, обучающие статьи. Онлайн обсуждения актуальных тем и обмен опытом. Для связи @RodmanDV
Больше941
Подписчики
Нет данных24 часа
+37 дней
+530 день
Архив постов
941
Быстрее, выше, сильнее: оптимизируем Spring-контекст для тестов
В статье обсуждаются доступные способы оптимизации Spring-контекста для тестов. Помимо подхода с сегментацией (test slicing) там также есть примеры более тонкой настройки.
В комментариях к статье также порадовал пример с иерархией контекстов.
https://habr.com/ru/companies/tbank/articles/816051/
941
Гайд по использованию JUnit 5, Mockito и AssertJ для проверки поведения кода
В статье показано как использовать JUnit, Mockito и AssertJ для тестирования кода, а также JaCoCo для оценки покрытия тестами на примере простого мини-сервиса.
https://habr.com/ru/companies/banki/articles/814485/
941
Рецепты «приготовления» Hibernate, или решаем 5 проблем работы с фреймворком
Hibernate — очень мощный фреймворк. Однако многие, начиная с ним работать, натыкаются на проблемы производительности или отсутствия нужной функциональности. Многие из этих проблем появляются просто из-за того, что разработчики не умеют его «готовить».
Подборка решений достаточно интересная в статье.
https://habr.com/ru/companies/magnit/articles/814573/
941
Генерация OpenAPI из Spring Boot MVC
При работе с OpenAPI есть свои «подводные камни». Некоторые из них описаны в этой статье. В примере используется Spring Boot 3 и OpenAPI 3.
https://habr.com/ru/articles/814061/
941
Криптография на службе у stateless
Команда Мир Plat.Form под интересным углом посмотрела на архитектуру решения stateless сервиса. Вместо хранения состояния на стороне сервиса они решили передавать его в каждом запросе, а для защиты от подмены использовать контрольные суммы сообщения (HMAC). У решения есть свои плюсы и минусы. Больше деталей в статье.
https://habr.com/ru/companies/nspk/articles/808199/
941
Coding game
Coding game - сайт для прокачки навыков программирования на 25+ языках. Можно писать и на Java. Вы получаете задачи и решаете их в игровой форме. Оформление впечатляет )
https://www.codingame.com/start/
941
Practice SQL - сайт для практики SQL запросов.
Навык работы с базами данных очень важен для разработчиков. Прелесть данного сайта в том, что вам не нужно самим заниматься разворачиванием тестовой базы. Достаточно открыть браузер. Также, в отличии от тестов, здесь вам нужно будет реально набирать и выполнять SQL, а это лучше запоминается.
https://www.sql-practice.com/
941
Гарвардский курс по основам программирования CS50 (бесплатно)
Отличный курс по основам программирования. Можно быстро освежить базу. Особенно рекомендую новичкам.
https://youtube.com/playlist?list=PLawfWYMUziZqyUL5QDLVbe3j5BKWj42E5&si=ET3P_dbNTmHABDPx
941
Compiler Explorer — уникальный проект для исследования компилируемого кода
Это просто космический инструмент да еще и open source!!!
В левой панели вы выбираете язык и вставляете кусок кода, а в правой он показывает вам ассемблерный код, генерируемый разными компиляторами под разные архитектуры процессоров. Проект поддерживает 69 языков и Java в том числе.
Этот проект можно также использовать как отличный инструмент для изучения языка ассемблера. Достаточно навести курсор на команду, после чего откроется всплывающее окно с описанием команды. При нажатии правой клавишей мыши на команду открывается меню, в котором можно изучить более подробное описание.
В конце статьи особенно порадовал Movfuscator. Он использует только MOV ))
https://habr.com/ru/companies/ruvds/articles/815675/
941
Как начать писать на Java в VSCode
Я достаточно давно пользуюсь JetBrains IntelliJ IDEA хотя начинал свой путь в Java на Eclipse IDE. После перехода на JetBrains IntelliJ IDEA об альтернативах я особо не задумывался. IDE достаточно комфортная.
В статье автор делится опытом подготовки среды разработки и изучения вопроса: «А можно ли перейти на VSCode?».
https://habr.com/ru/companies/cdek_blog/articles/811631/
941
Появился новый канал с аудио обзорами различных материалов и событий из мира IT.
Если вам интересен такой формат, то накидайте «огоньков» ))
https://t.me/java_guru_podcast
941
Spring Boot Starter: практически, принципиально и подробнее. Часть 1
Одно из преимуществ микросервисной архитектуры в модульности ее компонентов. Общее решение, вынесенное за скобки, можно переиспользовать как внутри разрабатываемого проекта, так и в следующих сервисах с аналогичным стеком. А механизмы Spring Boot помогут создать общий компонент, настроить и легко интегрировать его.
А что можно выделить в отдельное решение? Присмотритесь к своему проекту. Наверняка во многих частях задействованы кастомные аннотации и их обработчики, модули безопасности, различные интерцепторы, валидаторы, средства мониторинга и трассировки. Любое решение, используемое в двух и более микросервисах, — отличный кандидат на выделение в самостоятельный компонент.
https://habr.com/ru/companies/ru_mts/articles/811693/
941
Материалы Spring Academy Pro стали доступны бесплатно
Доступ можно получить по этой ссылке. Материалы разбиты на 3 категории: руководства, курсы и траектория обучения.
https://spring.io/blog/2024/04/10/spring-academy-pro-content-now-free-to-access
941
Эффективность стримов в Java
Стримы позволяют писать более лаконичный код и с этим в основном никто не спорит. С производительностью стримов не все так однозначно.
В статье сравниваются результаты бенчмарков нескольких задач, решенных с использованием стримов и без них.
https://habr.com/ru/articles/807647/
941
Использование 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
941
Sealed (закрытые) классы Java: создание надежных и безопасных приложений
Sealed классы Java ограничивают набор классов, которые могут их реализовать. Это поможет предотвратить ряд ошибок и сделать код более удобным для сопровождения.
https://dzone.com/articles/java-sealed-classes-building-robust-and-secure-app
941
Красивый код с Optional и Either
Класс Optional хорошо подходит для ситуаций с отсутствующим значением как прекрасная альтернатива использованию null, но что делать если мы хотим в таких случаях возвращать разные объекты? Например если мы хотим работать с исключениями в функциональном стиле?
Есть несколько библиотек решающих эту задачу: vavr, fugue, lambda и either.
Either самая легковесная из них и детали работы с ней рассмотрены в статье.
https://dzone.com/articles/the-beauty-of-java-optional-and-either
941
System Design 101
Во многих компаниях на собеседованиях senior разработчиков этап System Design становится обязательным. В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы.
https://habr.com/ru/articles/770564/
941
Опять транзакции…
Транзакция нужна когда у нас есть несколько операций, которые меняют данные в БД. В противном случае смысла в ней никакого нет и база сама откроет и закроет транзакцию внутри себя, без дополнительных указаний извне. Речь в данной статье будет идти о клиентском управлении транзакциями, через аннотацию Spring
@Transactional и базу Postgres.
https://habr.com/ru/articles/803395/