🔥 Java 24 что нового?
18 марта Oracle официально выпустила Java 24 — не-LTS релиз, но с весьма занятными новшествами. Среди 24 JEPов есть парочка, ради которых можно обновиться:
🔹JEP 484 – Class-File API
Вводит стандартный API для парсинга, генерации и трансформации Java class-файлов.
🔹 JEP 485 – Stream Gatherers
Новый API для кастомных промежуточных операций в стримах.
🔹 JEP 489 – Vector API (9-я инкубация)
Продолжает развитие векторного API, предоставляя более эффективные вычисления с использованием векторных инструкций процессора
🔹 JEP 491 – Synchronize Virtual Threads without Pinning
Улучшает работу виртуальных потоков, позволяя синхронизировать их без привязки к конкретным потокам-носителям.
🔗 Полный список фич
🐸 Библиотека джависта #свежак
18 марта Oracle официально выпустила Java 24 — не-LTS релиз, но с весьма занятными новшествами. Среди 24 JEPов есть парочка, ради которых можно обновиться:
🔹JEP 484 – Class-File API
Вводит стандартный API для парсинга, генерации и трансформации Java class-файлов.
🔹 JEP 485 – Stream Gatherers
Новый API для кастомных промежуточных операций в стримах.
🔹 JEP 489 – Vector API (9-я инкубация)
Продолжает развитие векторного API, предоставляя более эффективные вычисления с использованием векторных инструкций процессора
🔹 JEP 491 – Synchronize Virtual Threads without Pinning
Улучшает работу виртуальных потоков, позволяя синхронизировать их без привязки к конкретным потокам-носителям.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍13🔥5🎉3
Forwarded from Библиотека программиста | программирование, кодинг, разработка
👨🏻💻 Исследование IT-аудитории Proglib 2025: зарплаты, технологии, профессии
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
➡️ Вся статистика и детали — здесь
Библиотека программиста #свежак
Кто такой современный разработчик в 2025 году? Актуальное исследование портрета IT-специалистов: зарплаты, технологии, специализации и демография разработчиков.
Библиотека программиста #свежак
Please open Telegram to view this post
VIEW IN TELEGRAM
😁7👍2🔥1
🔹 JPoint 2025
📅 Даты: 3–4 апреля 2025 года
📍 Место проведения: Москва, Россия
JPoint — крупнейшая Java-конференция в России, собирающая опытных разработчиков для обсуждения современных практик Java-разработки, новых функций языка, нюансов работы с Spring, а также тем, связанных с JVM, Kotlin и Scala.
🔹 JavaLand 2025
📅 Даты: 1–3 апреля 2025 года
📍 Место проведения: Нюрбург, Германия
JavaLand — ежегодная конференция для Java-разработчиков, проходящая в уникальной обстановке парка развлечений. Мероприятие предлагает множество докладов, воркшопов и возможностей для нетворкинга с международным сообществом.
🔹 GeeCON 2025
📅 Даты: 14–16 мая 2025 года
📍 Место проведения: Краков, Польша
GeeCON — одна из крупнейших европейских конференций, посвященных Java и JVM-технологиям. В программе — выступления ведущих экспертов, обсуждение современных трендов и практик разработки.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🎉1
🔹 JavaOne 2025
С 18 по 20 марта в Redwood Shores, Калифорния, прошла конференция JavaOne. Среди ключевых тем — релиз Java 24, упрощение синтаксиса и минимизация шаблонного кода. Mala Gupta, Java Champion и представитель JetBrains, поделилась своими впечатлениями и подчеркнула важность сертификации для карьерного роста.
🔹 JPoint 2025
3–4 апреля в Москве состоялась конференция JPoint 2025. Среди докладов: оптимизация компилятора javac, микробенчмарки с JMH, расширения Quarkus и CQRS, многопоточная вставка данных в БД с использованием Spring и PostgreSQL. Конференция собрала более 1200 участников и стала площадкой для обсуждения актуальных трендов в Java-разработке.
🔹 Рейтинг языков программирования
По данным TIOBE за апрель 2025 года, Java занимает 4-е место в рейтинге языков программирования. Несмотря на конкуренцию со стороны Python, C++ и C, Java сохраняет свою популярность благодаря стабильности и широкому применению в корпоративной разработке.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥1👏1
🔹 10 Java-инструментов, которые стоит освоить в 2025 году
Отличная подборка свежих тулов от команды JavaRevisited. Автор рассказывает, почему IntelliJ IDEA по-прежнему топ, как Maven и Gradle делят рынок сборщиков, зачем подключать SonarQube к CI/CD, и как JaCoCo помогает не пускать баги в прод.
🔹 16 лучших инструментов для анализа покрытия кода в Java
LambdaTest собрали отличную коллекцию тулов для code coverage. JaCoCo, Cobertura, Emma и другие инструменты с реальными примерами, плюс — рекомендации, как интерпретировать отчёты и не уплыть в графиках.
🔹 Spring Tools 4.29.0: новые возможности
В марте вышел свежий релиз Spring Tools с обновлённой поддержкой Spring Boot 3.x, быстрой навигацией и улучшенной автоподстановкой. Плюс, разработчики поработали над интеграцией с IDE (включая Eclipse и VS Code).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3👏2❤1
🔹 Как работает память в 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
👍6🔥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