🔹 Как работает память в JVM
Глубокий анализ архитектуры памяти Java Virtual Machine и особенностей управления памятью. Уникальная информация для улучшения производительности ваших Java-приложений.
🔹 Ускорение Spring REST API на 200%
Spring удобен, но его абстракции могут замедлять работу API. Рассмотрите способы избавиться от ненужных накладных расходов и значительно увеличить производительность API.
🔹 Caffeine анализ кода
Статья описывает Caffeine с использованием алгоритма TinyLFU. Рассматриваются структуры данных, методы и старение данных для поддержания актуальности кэша.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3👏2
🔹 Поддержка JDK 17-27 — новая версия требует более современных версий JDK.
🔹 Удаление устаревших API — больше не поддерживаются аннотации из javax.annotation и javax.inject.
🔹 Миграция на Jakarta EE 11 — обновления в работе с сервлетами и WebSocket.
🔹 Усовершенствования для Kotlin — поддержка Kotlin 2.x и отказ от старых решений.
🔹 Изменения в HttpHeaders API — улучшена обработка заголовков с учетом их нечувствительности к регистру.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥14👍8👏3
🔹 Spring-потрошитель
Автор делится опытом анализа и оптимизации Spring-приложений, выявляя скрытые зависимости и избыточные компоненты.
Рассматриваются методы обнаружения неиспользуемых бинов, циклических зависимостей и других архитектурных дефектов, влияющих на производительность и поддерживаемость кода.
🔹 Тестирование CAP-теоремы на примере MongoDB
Автор проводит серию тестов с различными параметрами writeConcern и readConcern, анализируя их влияние на согласованность и доступность данных.
Рассматриваются реальные сценарии, включая сбои и аварийные ситуации, с целью выявления оптимальных настроек для обеспечения требуемых свойств системы.
🔹 Clean your Memory: From Finalize to Cleaner
Рассматриваются проблемы, связанные с finalize(), такие как непредсказуемость вызова и возможные утечки памяти.
Введение в Cleaner предоставляет более гибкий и эффективный механизм для освобождения ресурсов, улучшая производительность и стабильность приложений.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
🔹 Как избавиться от Flaky-тестов с помощью JMina
Рассматривается использование библиотеки JMina для стабилизации нестабильных тестов. Автор делится практиками выявления и устранения причин нестабильности, улучшая надежность тестового покрытия.
🔹 Как ZGC аллоцирует память в хипе
Анализируется поведение сборщика мусора ZGC при выделении памяти. Обсуждаются особенности работы ZGC, его преимущества и потенциальные подводные камни при использовании в различных сценариях.
🔹 Паттерны и методологии разработки
Подборка материалов, посвященных современным паттернам проектирования и методологиям разработки. Рассматриваются лучшие практики, помогающие создавать устойчивые и масштабируемые приложения.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2👏1
🔹 OpenTelemetry и Kubernetes
Автор делится опытом миграции демо-приложения с Docker Compose на Helm в Kubernetes. Он описывает использование Helm subcharts для настройки инфраструктуры (Traefik, Jaeger, PostgreSQL) и приложений, а также демонстрирует изоляцию компонентов с помощью vCluster.
🔹 Тестирование Spring-контроллеров с MockMvcTester
Автор представляет MockMvcTester, новый инструмент в Spring Framework 6.2, который упрощает написание тестов контроллеров с использованием AssertJ-стиля. Он показывает, как интегрировать MockMvcTester в проекты на Spring Boot 3.4.0 и выше, и предоставляет примеры конфигурации для различных сценариев тестирования.
🔹 Создание надежного Docker-образа для Spring Boot-приложения
Автор рассматривает лучшие практики упаковки Spring Boot-приложений в Docker-образы. В статье обсуждаются методы диагностики сбоев, таких как OutOfMemoryError, с использованием heap dump и GC-логов, а также инструменты мониторинга, включая Spring Boot Actuator и Java Flight Recorder.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏1
🔹 Async IO with Java and Panama
Автор пишет об интеграции асинхронного ввода-вывода в Java с использованием io_uring и Project Panama. Он подробно описывает, как виртуальные потоки Java могут блокироваться при операциях с файловой системой, и как использование io_uring позволяет эффективно выполнять асинхронные операции ввода-вывода, минимизируя блокировки и повышая производительность.
🔹 Markdown in Java Docs
Автор описывает внедрение поддержки Markdown в комментарии JavaDoc начиная с Java 23, позволяя использовать синтаксис CommonMark для улучшения читаемости документации. Интеграция с IntelliJ IDEA включает режим рендеринга комментариев, автоматическое преобразование HTML-комментариев в Markdown и поддержку различных элементов форматирования, таких как списки, заголовки и блоки кода.
🔹 Go's HTTP Server Patterns in Java 25
Автор демонстрирует, как можно реализовать паттерны HTTP-сервера Go в Java 25, используя модуль jdk.httpserver и дополнительные библиотеки. Он создает простую вики-систему с возможностью просмотра и редактирования страниц, применяя современные возможности Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤2
🔹 Пиши простой код
Интересный пост, в котором все по делу. Мы все любим свою работу и стремимся создавать что-то увлекательное. Однако бывает легко увлечься ненужными абстракциями и паттернами, особенно когда большую часть кода пишет AI-ассистент. А вот сделать всё максимально простым — задача куда сложнее.
🔹 GRASP: почему настоящая архитектура начинается не с SOLID
Автор размышляет о концепции ООП и моделях предметной области, о том, как выстроить чёткое представление этой модели. Затем он переходит к GRASP как методу перевода этого представления в код. Паттерны рассматриваются взаимосвязанно и логично.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🔥3❤1👏1
🔹 Mastering JVM Memory Troubleshooting
Интересная статья о диагностике и устранении проблем с памятью в Java-приложениях. Узнайте о разных видах ошибок: переполнении heap-а и метапространства, утечках собственной памяти, о методах их обнаружения и решения.
🔹 Strings Just Got Faster
Автор описывает улучшение производительности строк в JDK 25. Метод String::hashCode может быть оптимизирован компилятором, используя свертывание констант (constant folding), что улучшает производительность строковых ключей в Map<String, V>.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2👏1
🔹 Spring Framework v7.0.0-M5
Исправления ошибок, улучшения документации, обновления зависимостей и новые функции. Классы PropertyPlaceholderConfigurer и PreferencesPlaceholderConfigurer объявлены как deprecated, появилась поддержка Jackson 3.0 и многое другое.
🔹 Стратегическое партнёрство Kotlin и Spring
Ключевые инициативы включают повышение null-безопасности, разработку официальных обучающих материалов на Kotlin, внедрение быстрой рефлексии с помощью библиотеки kotlinx.reflect и создание новых DSL для конфигурации бинов.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥1👏1
🔹 Spring Data Ahead of Time Repositories
Автор описывает внедрение механизма предварительной генерации кода (AOT) для репозиториев в Spring Data 4.0, позволяя переносить подготовку запросов из фазы запуска приложения в фазу сборки.
🔹 Choco for Constraint Programming
Библиотека с инструментарием для решения задач в парадигме Constraint Programming. Такая парадигма подходит для задач, в которых нужно найти возможные значения для набора переменных, удовлетворяющих определенному набору условий. Например, решить головоломку судоку.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1
🔹 Java Annotated Monthly – June 2025
Обзор редакции IntelliJ IDEA Blog: 17 активных JEP‑пропозиций для Java 25 и обзор предстоящих нововведений. Подчёркивается, что Java всё ещё активно развивается, несмотря на появление новых языков
🔹 How to Handle 1 Million Requests per Minute
Обсуждение реальных паттернов проектирования для высоконагруженных систем — балансировка на каждом уровне, эффективное кеширование, асинхронная обработка и др.
🔹 Clean and Modular Java
Автор показывает, как организовать модульную архитектуру (core, adapters, infrastructure) в Java-приложении с использованием Maven и четким разделением слоёв. Отлично подходит для архитекторов и тех, кто хочет улучшить читаемость и гибкость кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3👍2🔥2
🔹 Towards a JSON API for the JDK
Разработчики OpenJDK анонсировали JSON API для Java, пока только на уровне рассылки, но обещают скоро подготовить JEP или обновить JEP 198. Добавление JSON API видится крайне полезным, по крайней мере для простых проектов и скриптов.
🔹 Redis is now available under the AGPLv3 open source license
Начиная с версии Redis 8 система снова доступна под открытой лицензией AGPLv3, одобренной OSI. Вместе с этим в Redis 8 интегрированы технологии Redis Stack, включая поддержку JSON и Time Series, а еще представлен новый тип данных — vector sets.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🔥1
🔹 Spring Cloud 2023.0.6
Исправление багов и важные обновления своих под-проектов: Spring Cloud Gateway 4.1.9, Spring Cloud Circuit Breaker 3.1.5 и Spring Cloud Contract 4.1.6.
🔹@TestInstance(PER_CLASS) в JUnit 5
Разбор фичи JUnit 5, которая позволяет изменить жизненный цикл тестов. Обычно тестовый класс пересоздается для каждого метода, а с аннотацией @TestInstance(PER_CLASS) это будет происходить один раз для каждого класса.
🔹Java’s Structured Concurrency
Статья про Structured Concurrency, которое уйдет на 5-е превью в Java 25. Можно посмотреть, как будет выглядеть будущее многопоточного программирования на Java.
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🔥2👍1
🔹Benchmarking and profiling Java with JMH
Статья объясняет, как JMH помогает измерять производительность кода, выявлять узкие места и оптимизировать приложения, предоставляя практические примеры и советы по его применению.
🔹Kotlin 2.2.0 Released
Вышел релиз Kotlin 2.2.0, содержащий исправления багов и значимые изменения. Подробнее в статье.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2🔥2❤1
🔹 Demystifying Spring Boot With Spring Debugger
Обзор плагина Spring Debugger от JetBrains. Этот плагин позволяет удобнее дебажить Spring-приложения, а еще наглядно показывает, какие бины загружены в контекст, какие свойства какими значениями проинициализированы и какая транзакция активна на момент той или иной точки остановки.
🔹 Spring Data JPA и Hibernate: ориентируемся на производительность. Часть 1
Перевод доклада Мацея Валковяка Performance oriented Spring Data JPA & Hibernate, сделанный командой Spring АйО. Это первая из трех частей, и она сконцентрирована на управлении коннектами к БД.
🔹 Premature Design Is Not Design
В статье автор рассказывает о том, как преждевременное переусложенение дизайна приложений может привести к проблемам. Приводятся два примера: использование RBAC и DRY.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4❤2🔥1
🔹 IntelliJ IDEA переходит на единый дистрибутив
Начиная с IntelliJ IDEA 2025.3 больше не будет разделения на Community и Ultimate Edition. Вместо этого будет один установщик. При этом ряд функций все еще будет доступен только по подписке, как это сейчас работает в Ultimate Edition.
🔹 IntelliJ IDEA переходит на единый дистрибутив (Ру)
Перевод от команды Spring АйО на русский прошлой новости.
🔹 Spring Data JDBC и R2DBC 4.0 получат поддержку составных идентификаторов
Если моделировали первичный ключ из нескольких полей в Spring Data JDBC или R2DBC, то знаете, что это непросто. С версии 4.0.0-M4 вы просто описываете record, помечаете его как @Id, и все работает.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤3🔥1
🔹 Spring Debugger: Working With Dynamic Database Connections Just Got Simpler
При запуске Spring-приложения или тестов в режиме отладки этот плагин автоматически находит и регистрирует в секции DataSource подключения к БД, которые были подняты в Testcontainers
🔹 An Introduction to Jakarta Persistence 3.2 by Examples
Статья о нововведениях Jakarta Persistence 3.2. Несмотря на минорное обновление, фич добавили много.
🔹 RESTful API Guidelines
Статья о распространенных ошибках в REST API — несогласованные URIs, неверное использование HTTP-методов и кодов, отсутствие версионирования и стандартов.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2❤1👍1
🔧 Основные улучшения Spring Boot 4
В новой версии Spring Boot 4, которая выйдет в ноябре 2025 года, разработчики получат ряд значительных улучшений, включая поддержку Jakarta EE 11, интеграцию с GraalVM 24 и улучшенную совместимость с Kotlin 2.2.
🔹 Поддержка Jakarta EE 11
Spring Boot 4 перейдёт на Jakarta EE 11, что обеспечит поддержку Servlet 6.1, JPA 3.2 с Hibernate ORM 7.0 и Bean Validation 3.1. Это улучшит работу с веб-API и базами данных, а также обеспечит лучшую поддержку Kotlin и Java records.
🔹 Интеграция с GraalVM 24
Поддержка GraalVM 24 позволит создавать нативные образы с улучшенной производительностью и меньшим временем запуска, что особенно важно для микросервисной архитектуры и облачных приложений.
🔹 Совместимость с Kotlin 2.2
Spring Boot 4 улучшит работу с Kotlin 2.2, включая поддержку новых возможностей языка и улучшенную интеграцию со сборкой Gradle, что упростит разработку на Kotlin.
🔹Облачные технологии и контейнеризация
Улучшенные Buildpacks и более эффективная сборка Docker-образов обеспечат лучшую поддержку облачных технологий и контейнеризации, что упростит развертывание приложений.
🔹Безопасность
Spring Boot 4 будет основан на Spring Security 7, обеспечивая улучшенную интеграцию с OAuth 2.2 и OIDC, а также улучшенные криптографические настройки по умолчанию для повышения безопасности приложений.
🐸 Библиотека джависта
#свежак
В новой версии Spring Boot 4, которая выйдет в ноябре 2025 года, разработчики получат ряд значительных улучшений, включая поддержку Jakarta EE 11, интеграцию с GraalVM 24 и улучшенную совместимость с Kotlin 2.2.
🔹 Поддержка Jakarta EE 11
Spring Boot 4 перейдёт на Jakarta EE 11, что обеспечит поддержку Servlet 6.1, JPA 3.2 с Hibernate ORM 7.0 и Bean Validation 3.1. Это улучшит работу с веб-API и базами данных, а также обеспечит лучшую поддержку Kotlin и Java records.
🔹 Интеграция с GraalVM 24
Поддержка GraalVM 24 позволит создавать нативные образы с улучшенной производительностью и меньшим временем запуска, что особенно важно для микросервисной архитектуры и облачных приложений.
🔹 Совместимость с Kotlin 2.2
Spring Boot 4 улучшит работу с Kotlin 2.2, включая поддержку новых возможностей языка и улучшенную интеграцию со сборкой Gradle, что упростит разработку на Kotlin.
🔹Облачные технологии и контейнеризация
Улучшенные Buildpacks и более эффективная сборка Docker-образов обеспечат лучшую поддержку облачных технологий и контейнеризации, что упростит развертывание приложений.
🔹Безопасность
Spring Boot 4 будет основан на Spring Security 7, обеспечивая улучшенную интеграцию с OAuth 2.2 и OIDC, а также улучшенные криптографические настройки по умолчанию для повышения безопасности приложений.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12❤3🔥2
Лето подходит к концу, а Java-мир кипит новостями. Интересные апдейты:
🔹 Compact Object Headers в JDK 25
Экономия памяти до 22 % и +10 % к скорости работы приложений. Приятный бонус для высоконагруженных систем.
🔹 Project Reactor 2025.0.0-M5
Свежая milestone-версия: стабильнее core, netty и другие модули. Reactive-код станет ещё надёжнее.
🔹 Spring Framework 7.0.0-M7
Добавлены аннотации для устойчивости и новые API для работы с сообщениями — меньше бойлерплейта, больше фокуса на бизнес-логике.
🔹 IntelliJ IDEA 2025.3
Больше не нужно выбирать: Community и Ultimate объединены. Часть функций теперь бесплатна — студия стала проще и доступнее.
🔹 GraalVM CE 24.0.2
Фиксы критичных багов и улучшения в JIT: обновление стоит поставить в первую очередь.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
❤9👍1🔥1
Календарь перевернули, учебный год начали, а Java-сообщество не стоит на месте. Вот актуальные события и материалы:
🔹 Java 25 (LTS) запланирована на 16 сентября 2025
Среди 18 новых улучшений — профилирование CPU-времени в JFR, Vector API, структурная конкуренция и многое другое. Стабилизация уже в самом разгаре.
🔹 95% пилотных проектов в области генеративного ИИ в компаниях проваливаются
Согласно отчёту MIT, лишь около 5 % пилотных внедрений генеративного ИИ приносят ощутимый финансовый эффект, несмотря на активный интерес и ожидания. Основные причины провалов — неправильная интеграция, неоправданные приоритеты и недостаточная адаптация под бизнес-процессы.
🔹 Java 26 может получить HTTP/3
Следующий релиз рассматривает опциональную поддержку HTTP/3, что может обновить сетевой стек платформы.
🔹 Отказ от Oracle Java в пользу Open-Source
79 % организаций переходят на бесплатные дистрибутивы Java — это экономия до 40 %, гибкое лицензирование и меньше рисков.
🔹 AI-кодогенерация не вытеснит разработчиков
AI хорошо помогает с рутиной, но без человеческого интеллекта, контекста и внимания к качеству и безопасности Java-разработка не обойдётся.
#свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3❤2🔥2