Новое событие в JFR для диагностики использования устаревшего (deprecated) кода
В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется.
В больших проектах найти куски устаревшего кода в куче зависимостей задача не тривиальная и требующая хорошей автоматизации. В этой ситуации к нам приходит на помощь новый тип события в JFR. Он был добавлен в JDK 22.
Давайте посмотрим на простом примере как это работает.
https://habr.com/ru/articles/837052/
#jfr
В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется.
В больших проектах найти куски устаревшего кода в куче зависимостей задача не тривиальная и требующая хорошей автоматизации. В этой ситуации к нам приходит на помощь новый тип события в JFR. Он был добавлен в JDK 22.
Давайте посмотрим на простом примере как это работает.
https://habr.com/ru/articles/837052/
#jfr
Хабр
Новое событие в JFR для диагностики использования устаревшего (deprecated) кода
В Java есть специальная аннотация @Deprecated для маркировки уставшего кода. С определенной периодичностью такой код из JDK удаляется. Обычно о конкретных сроках удаления анонс делается заранее и в...
🔥4👍2
Шпаргалка по сложности алгоритмов
Все наглядно и без "лишней воды". Может пригодиться для собесов.
https://www.bigocheatsheet.com/pdf/big-o-cheatsheet.pdf
#algorithm #interview
Все наглядно и без "лишней воды". Может пригодиться для собесов.
https://www.bigocheatsheet.com/pdf/big-o-cheatsheet.pdf
#algorithm #interview
🔥6
Устаревшие мифы про Java
Язык Java прошел большой жизненный путь и за это время вокруг него сформировалось много разлычных мифов и слухов. Часть из них рождались в холиварных спорах о том какой язык лучше. Часть имеют под собой реальное обоснование и связанны с различными ограничениями софта\железа существовавшими на тот момент, но с течением времени утратившим свою актуальность. В этой статье мы постараемся сфокусироваться как раз на мифах утративших свою актуальность.
Если тема и формат понравится, то будет больше публикаций по этой теме.
https://habr.com/ru/articles/842384/
Язык Java прошел большой жизненный путь и за это время вокруг него сформировалось много разлычных мифов и слухов. Часть из них рождались в холиварных спорах о том какой язык лучше. Часть имеют под собой реальное обоснование и связанны с различными ограничениями софта\железа существовавшими на тот момент, но с течением времени утратившим свою актуальность. В этой статье мы постараемся сфокусироваться как раз на мифах утративших свою актуальность.
Если тема и формат понравится, то будет больше публикаций по этой теме.
https://habr.com/ru/articles/842384/
🔥3💩2👍1
Лучшие практики для Java-приложений в Kubernetes
В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.
https://piotrminkowski.com/2023/02/13/best-practices-for-java-apps-on-kubernetes/
В этой статье вы прочитаете о лучших практиках запуска Java-приложений в Kubernetes. Большинство из этих рекомендаций будут справедливы и для других языков.
https://piotrminkowski.com/2023/02/13/best-practices-for-java-apps-on-kubernetes/
Piotr's TechBlog
Best Practices for Java Apps on Kubernetes - Piotr's TechBlog
In this article, you will read about the best practices for running Java applications on Kubernetes with tools and code examples.
🔥3
Middle-starter-pack по spring data
Как показывает практика, многие разработчики относятся к аннотациям в коде как к магическим заклинаниям, при этом даже не задумываясь о том, почему эти "заклинания" вообще работают.
Код всегда работает так как мы его написали (или не мы), если мы считаем что код работает не так, значит мы что-то не знаем/не учитываем.
Кейсы разобраны довольно интересные.
https://habr.com/ru/articles/824936/
Как показывает практика, многие разработчики относятся к аннотациям в коде как к магическим заклинаниям, при этом даже не задумываясь о том, почему эти "заклинания" вообще работают.
Код всегда работает так как мы его написали (или не мы), если мы считаем что код работает не так, значит мы что-то не знаем/не учитываем.
Кейсы разобраны довольно интересные.
https://habr.com/ru/articles/824936/
Хабр
Middle-starter-pack по spring data
Для кого эта статья? В рамках статьи рассмотрю несколько неочевидных моментов, с которыми рано или поздно столкнется любой пользователь spring-data-jpa. Статья не является исчерпывающим руководством и...
🔥6
Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать
В статье говорится об одном из
https://habr.com/ru/companies/bercut/articles/822253/
В статье говорится об одном из
lock-free
алгоритмов в Java и разбирается связанное с ним ключевое слово volatile
и паттерн immutable
.https://habr.com/ru/companies/bercut/articles/822253/
Хабр
Volatile, Lock-free, Immutable, Atomic в Java. Как понять и начать использовать
Вступление Привет, меня зовут Денис Агапитов, я руководитель группы Platform Core компании Bercut. Сегодня хочу поговорить об одном из lock-free алгоритмов в Java. Разберём как с ним связано ключевое...
🔥4
Spring Boot Starter: практически, принципиально и подробнее. Часть 2
Это вторая статья из серии статей о том как создавать Spring Boot Starter. Ссылка на первую есть в начале статьи. Первую имеет смысл читать если вы не знакомы со стартерами.
Во второй на прикольных примерах разбираются возможные аннотации для конфигурирования. Стоит особо отметить примеры создания кастомных аннотаций.
https://habr.com/ru/companies/ru_mts/articles/825014/
Это вторая статья из серии статей о том как создавать Spring Boot Starter. Ссылка на первую есть в начале статьи. Первую имеет смысл читать если вы не знакомы со стартерами.
Во второй на прикольных примерах разбираются возможные аннотации для конфигурирования. Стоит особо отметить примеры создания кастомных аннотаций.
https://habr.com/ru/companies/ru_mts/articles/825014/
Хабр
Spring Boot Starter: практически, принципиально и подробнее. Часть 2
Привет, Хабр! На связи снова Сергей Соловых, Java-разработчик в команде МТС Digital. Продолжаю рассказывать о Spring Boot Starter. В прошлой части мы создали принципиальное решение, которое позволит...
🔥3
Вышла Java 23
Вышла общедоступная версия Java 23. В этот релиз попало около 2400 закрытых задач и 12 JEP'ов. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.
Java 23 не является LTS-релизом, и у неё будут выходить обновления только полгода (до марта 2025 года).
https://habr.com/ru/news/844060/
Вышла общедоступная версия Java 23. В этот релиз попало около 2400 закрытых задач и 12 JEP'ов. Release Notes можно посмотреть здесь. Полный список изменений API – здесь.
Java 23 не является LTS-релизом, и у неё будут выходить обновления только полгода (до марта 2025 года).
https://habr.com/ru/news/844060/
Хабр
Вышла Java 23
Вышла общедоступная версия Java 23 . В этот релиз попало около 2400 закрытых задач и 12 JEP'ов . Release Notes можно посмотреть здесь . Полный список изменений API – здесь . Java 23 не является...
🔥2👏1
Опыт отладки хитрой утечки памяти
Окружение: потоковые конвейеры обработки данных, созданные с помощью Apache Flink.
Симптомы: Время от времени некоторые таски «валятся» из-за утечек памяти.
Статья интересна не только найденной причиной проблемы, но и описанием процесса поиска причины.
https://habr.com/ru/companies/wunderfund/articles/843618/
Окружение: потоковые конвейеры обработки данных, созданные с помощью Apache Flink.
Симптомы: Время от времени некоторые таски «валятся» из-за утечек памяти.
Статья интересна не только найденной причиной проблемы, но и описанием процесса поиска причины.
https://habr.com/ru/companies/wunderfund/articles/843618/
Хабр
Опыт отладки хитрой утечки прямой памяти
Pinterest поддерживает формирование отчётов по метрикам рекламных объявлений внешних рекламодателей и расчёт рекламных бюджетов в реальном времени. Всё это основано на потоковых конвейерах обработки...
🔥6👍1
Как расширить JPA для работы с JSONB в PostgreSQL
Для работы с JSONB в PostgreSQL можно использовать и нативные SQL-запросы, но если в вашем проекте подключен Hibernate, то вы можете решить задачу более объектно ориентированно.
https://habr.com/ru/companies/itfb/articles/825406/
Для работы с JSONB в PostgreSQL можно использовать и нативные SQL-запросы, но если в вашем проекте подключен Hibernate, то вы можете решить задачу более объектно ориентированно.
https://habr.com/ru/companies/itfb/articles/825406/
Хабр
Как расширить JPA для работы с PostgreSQL
Всем привет! Меня зовут Антон, я — архитектор компании ITFB Group. Пережив несколько проектов, на которых встречается стек PostgreSQL с использованием связки PostgreSQL + JPA, мне удалось...
🔥3👍2
Умножение Монтгомери
Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.
Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.
https://habr.com/ru/articles/827880/
Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача умножения чисел по модулю встречается повсеместно.
Один из вариантов эффективного решения — умножать по модулю, вообще при этом не используя операции деления, с помощью алгоритма Монтгомери.
https://habr.com/ru/articles/827880/
Хабр
Умножение Монтгомери
Деление целых чисел — это долго и сложно. Вычислять остаток от деления — нисколько не проще. При этом в спортивном программировании, да и в прикладной математике типа криптографии, задача...
🔥3
Неожиданности в авторизации. Что скрывает Keycloak?
Даже в известном и популярном ПО бывают баги. Иногда не очень очевидные, а иногда и детские. В статье приведен разбор для довольно популярного продукта Keycloak.
https://habr.com/ru/companies/pvs-studio/articles/828406/
Даже в известном и популярном ПО бывают баги. Иногда не очень очевидные, а иногда и детские. В статье приведен разбор для довольно популярного продукта Keycloak.
https://habr.com/ru/companies/pvs-studio/articles/828406/
Хабр
Неожиданности в авторизации. Что скрывает Keycloak?
Авторизация и регистрация пользователей — важная часть приложения как для юзеров, так и для безопасности. Но какие неожиданности содержит исходный код популярного Open Source решения для авторизации,...
🔥2
Сбер запустил второй сезон конкурса красоты кода 👑
Подайте заявку на конкурс «Красота кода» до 28 октября и напишите аккуратный и понятный код.
Во втором сезоне аудитория будет соревноваться в пяти категориях: Backend, Frontend, DevOps, AI и Mobile.
Участники могут выиграть iPhone 16, колонку SberBoom и получить приглашение на оффлайн конференцию HighLoad++.
Готовы побеждать? Скорее заполняйте заявку на сайте
Подайте заявку на конкурс «Красота кода» до 28 октября и напишите аккуратный и понятный код.
Во втором сезоне аудитория будет соревноваться в пяти категориях: Backend, Frontend, DevOps, AI и Mobile.
Участники могут выиграть iPhone 16, колонку SberBoom и получить приглашение на оффлайн конференцию HighLoad++.
Готовы побеждать? Скорее заполняйте заявку на сайте
🔥15👏5❤4😁2🤔1
Microservices Project using Spring Boot
В статье описан проект на базе Spring Boot 3, Spring Cloud и PostgreSQL. В рамках проекта вы изучите ключевые компоненты, такие как API Gateway, Config Server и Discovery Server, а также реализуете два реальных микросервиса.
https://www.javaguides.net/2023/04/microservices-using-spring-boot.html
В статье описан проект на базе Spring Boot 3, Spring Cloud и PostgreSQL. В рамках проекта вы изучите ключевые компоненты, такие как API Gateway, Config Server и Discovery Server, а также реализуете два реальных микросервиса.
https://www.javaguides.net/2023/04/microservices-using-spring-boot.html
www.javaguides.net
Microservices Project using Spring Boot
In this tutorial, we will learn how to build a simple Microservices project using Spring Boot 3, Spring Cloud, and PostgreSQL database.
🔥3
Работа с геометрией в JPA и Spring Boot 3
Автору проекта из статьи нужно было работать с адресами клиентов и проверять входит ли адрес в зону доставки. Для работы с геометрией используется GeoJson. В качестве базы PostgreSQL. Приложение для работы с базой использует Spring Data JPA.
https://habr.com/ru/articles/831566/
Автору проекта из статьи нужно было работать с адресами клиентов и проверять входит ли адрес в зону доставки. Для работы с геометрией используется GeoJson. В качестве базы PostgreSQL. Приложение для работы с базой использует Spring Data JPA.
https://habr.com/ru/articles/831566/
Хабр
Работа с геометрией в JPA и Spring Boot 3
Добрый день, уважаемые читатели Хабра. В один день для моего pet-проекта понадобилось сделать добавление адресов клиентов, и проверка входит ли этот адрес в зону доставки. Так как статей на эту...
🔥5❤1
Создание масштабируемых приложений при помощи Kafka и реактивного программирования
В статье описывается построение системы из нескольких микросеовисов на базе Spring Boot Webflux и Kafka. Даже взаимодействие по WebSocket добавили. Если вы не работали с этими технологиями, то там вначале дается краткая справка. Из странностей: описывается старт Kafka не в podman/docker, а «по старинке».
В целом статья хорошая и «без лишней воды».
https://habr.com/ru/companies/piter/articles/831772/
В статье описывается построение системы из нескольких микросеовисов на базе Spring Boot Webflux и Kafka. Даже взаимодействие по WebSocket добавили. Если вы не работали с этими технологиями, то там вначале дается краткая справка. Из странностей: описывается старт Kafka не в podman/docker, а «по старинке».
В целом статья хорошая и «без лишней воды».
https://habr.com/ru/companies/piter/articles/831772/
Хабр
Создание масштабируемых приложений при помощи Kafka и реактивного программирования
Введение В современном цифровом мире критически важна возможность обрабатывать данные в режиме реального времени и масштабировать приложения. Для этого хорошо подходит Kafka – платформа для...
🔥5
Инверсия управления Контейнеров и паттерн Инъекции Зависимостей — перевод
Перевод статьи легендарного Мартина Фаулера про его взгляд на IoC и DI.
https://habr.com/ru/articles/832390/
Перевод статьи легендарного Мартина Фаулера про его взгляд на IoC и DI.
https://habr.com/ru/articles/832390/
Хабр
Инверсия управления Контейнеров и паттерн Инъекции Зависимостей — перевод
Это перевод статьи Мартина Фаулера “Inversion of Control Containers and the Dependency Injection pattern В сообществе Java наблюдается бурный рост числа легковесных контейнеров (lightweight...
🔥3
Генерация HTTP клиентов для Spring Boot приложения по OpenAPI спецификации
В статье написано о том как можно сгенерировать код HTTP клиентов для Spring Boot приложения по OpenAPI спецификации, используя плагин openapi-generator для Gradle.
https://maciejwalkowiak.com/blog/spring-boot-openapi-generate-client/
В статье написано о том как можно сгенерировать код HTTP клиентов для Spring Boot приложения по OpenAPI спецификации, используя плагин openapi-generator для Gradle.
https://maciejwalkowiak.com/blog/spring-boot-openapi-generate-client/
Maciejwalkowiak
Generating HTTP clients in Spring Boot application from OpenAPI spec
🔥6
Кэш второго уровня Hibernate для чайников
В Hibernate есть возможность гибкой настройки L2 кэша. Можно подключать различные провайдеры с реализацией кеша. В статье приводится пример настройки для ehcache.
https://habr.com/ru/articles/833478/
В Hibernate есть возможность гибкой настройки L2 кэша. Можно подключать различные провайдеры с реализацией кеша. В статье приводится пример настройки для ehcache.
https://habr.com/ru/articles/833478/
Хабр
Кэш второго уровня Hibernate для чайников
Будучи студентом или стажером, вы наверняка столкнетесь с подобной задачей — включить кэширование сущностей, чтобы сэкономить на обращениях к базе данных. Однако, в интернете информацию придется...
🔥7