Что на радаре в Java: программа JPoint 2025

Конференцию JPoint мы проводим уже 12 лет. За это время немало оперативки утекло, и актуальные для Java-разработчиков темы ощутимо изменились: например, когда мы всё начинали, ещё толком не было Kotlin. Какие-то понятия можно назвать «вечными» (например, о базах данных говорят из года в год), но и там конкретные темы докладов меняются.
А что будет на новом JPoint в апреле? Какие инструменты и подходы актуальны для разработчиков в 2025-м?
Во-первых, представляем вам полное описание программы. Можете изучить краткие описания всех докладов и понять, интересны ли они вам.
А во-вторых, у нас есть просьба. Чтобы делать программу как можно актуальнее, мы затеяли инициативу TechRadar. Если вы Java-разработчик, по возможности пройдите опрос о том, какими технологиями пользуетесь. Так и доклады получатся максимально соответствующими запросам сообщества, и без результатов опроса вас тоже не оставим — сможем позже все их как следует обсудить!
Содержание
Кейноуты
Базы данных
Инструменты
JVM
Дизайн и архитектура
DevEx
Kotlin и другие языки программирования
Производительность
JDK
Инфраструктура
Обработка данных
NoSpring
PostgreSQL
Геймдев
Cassandra
Тестирование
Другое
Кейноуты
До того, как переходить к основным докладам, конференцию откроет выступление от Программного комитета. А в самом конце, когда все уже загрузятся Java по уши и в голову перестанет влезать хардкор, мероприятие закроет более «лайтовое» выступление от известного персонажа:
Математика, физика и музыка

Математика, физика и гармония в музыке тесно связаны. Все мы знаем, что существует семь нот. Это с точки зрения лирика. А с точки зрения физика — их больше. Об этом, а также о том, как музыку можно объяснить через цифры, формулы и частоты, и расскажет Александр.
Базы данных
OSIV выключить нельзя включить

Spring АйО

Spring АйО
Вам расскажут о настройке Spring под названием open-in-view. Она включена по умолчанию, по общепринятому мнению ее надо выключать. А вот точно надо? Может, можно как-то по другому? Или нет? Выключить нельзя включить. Приходите, расставим запятые вместе!
Как мы разгрузили БД Camunda, не потеряв ни строчки истории

Т-Банк
Движок Camunda может записывать подробную историю прохождения процессов, которая очень полезна для поддержки пользователей. Но это очень дорого для БД. Доклад о том, как максимально эффективно вынести историю в отдельную БД, освободив основное приложение для непосредственного обслуживания клиентов.
Инструменты
Эффективное версионирование REST API: Spring MVC, JAX-RS и Annotations, Mixins

Koronatech
Адай расскажет, как в Koronatech справляются с версионированием REST API в условиях высоких нагрузок и частых релизов (каждые две недели). Вы узнаете, как избежать дублирования кода, сохранить обратную совместимость и упростить жизнь разработчику.
Путеводитель по профилированию приложений на JVM

Tibbo Systems
Во время доклада выясним плюсы и минусы разных инструментов для профилирования. Рассмотрим особенности профилирования, из-за которых появились разные инструменты, а затем на примере трех популярных профайлеров выясним, в чем их сильные и слабые стороны, в каких случаях выбирать тот или иной и как выжать из каждого максимум. Попутно пройдемся по граблям, на которые можно наступить, выбрав не тот инструмент или применив его неверно.
Генерируем код. Зачем и как?

Positive Technologies
Александр расскажет про разные аспекты кодогенерации (ака метапрограммирования), такие как:
генерация кода из датамоделей (contract first на примере Protobuf, ANTLR);
генерация байт-кода (ускорение программы — на примере Janino);
аннотейшн процессинг (упрощение кода программы — на примере Lombok).
Он покажет, как работать с Java/KotlinPoet. Приведет пример решения боевой задачи с использованием KotlinPoet.
JVM
Анализ поверхности атаки для Java-приложений

ИСП РАН
Для поиска поверхности атаки для приложений необходимо отслеживать потоки данных в них. Большинство существующих инструментов отслеживания потоков данных основаны на виртуальных машинах. Это приводит к тому, что при анализе Java-приложений можно наблюдать лишь за выполнением процессорных инструкций, но не байт-кода.
В то же время для динамического анализа необходимо определять, какие функции пользовательского кода при этом выполняются. В докладе рассмотрим способ извлечения имен и параметров Java-функций, выполняющихся в виртуальной машине под управлением QEMU.
Дизайн и архитектура
Легковесный. Распределенный. Масштабируемый. Таск-процессор на Java

VK / RuStore
Многие стандартные фреймворки для распределенного таск-процессинга преследуют задачу быть «универсальными» — с одной стороны, это плюс. С другой стороны, это приводит к излишнему использованию внешних зависимостей и сложных конфигураций и не подходит, когда хочешь легковесное Java-only решение для повседневных задач: от запуска в кластере по расписанию до сложных задач стриминг-процессинга.
В докладе поговорим, как в RuStore написали свое решение. Обсудим готовые фреймворки, которые рассматривали по пути. Посмотрим на основные проблемы, которые встречались во время эксплуатации фреймворка, и вам расскажут, как их решали. Обсудим use cases использования. В конце напишем собственный workflow и запустим его.
Управление нагрузкой и приоритизацией клиентов в Spring Cloud Gateway

Natera
В этом докладе мы рассмотрим кастомный механизм ограничения нагрузки с приоритизацией клиентов, реализованный на основе Spring Cloud Gateway. Обсудим ограничения стандартных решений и увидим, как кастомный фильтр с распределенным управлением пропускной способностью в Redis обеспечивает приоритетный доступ клиентам и перераспределяет неиспользуемые ресурсы.
Модульный монолит: как построить гибкое Java-приложение с hot reload

Paidora
Ключевая тема — «горячая» перезагрузка (hot reload) модулей без перезапуска приложения, позволяющая обновлять функциональность на лету и минимизируя downtime. Для понимания этого механизма разберем основы Java ClassLoaders, принципы их работы и видимости классов.
DevEx
Обновляться больно. Обновляйтесь

Ozon
Все мы когда-нибудь обновляли что-то в проекте и обязательно вместе с этим отваливалось что-то в совершенно неожиданном месте. Несмотря на всю комфортность и доброжелательность Java-экосистемы, такие ситуации не редкость, и отдельного масла в огонь подливает раздельная компиляция.
В докладе мы посмотрим не только на такие проблемы, но и на различные пути их решения — как со стороны пользователей библиотек, так и со стороны разработчиков, стремящихся и клиентов не поломать, и функциональность добавить. Пройдем через все препятствия на пути к (почти) универсально совместимым API и выучим несколько необычных приемов по обеспечению как исходной, так и бинарной обратной совместимости. А главное, попробуем доказать, что основной способ избежать боли при обновлениях — это обновляться, делая этот процесс системным.
Симфония GigaIDE: от идеи до готовой платформы

Сбер
Обсудим новую платформу для разработки от Сбера — GigaIDE.
Поговорим о том, почему Сбер решил создать собственную IDE, когда существует IDEA Community, и какие между ними есть отличия. Рассмотрим планы по дальнейшему развитию платформы, а также функциональность, вошедшую в релизную версию.
От коммита до релиза: версионирование Java-приложений

Яндекс
Этот доклад — ваш альманах и настольная книга, если вы хотите организовать автоматическое версионирование и упростить выпуск релизов в своем проекте.
Мы разберем популярные стратегии работы с Git, рассмотрим плюсы и минусы разных видов GitFlow и выберем тот, который лучше всего подойдет именно вам. Поговорим о видах релизов и версий, исследуем существующие плагины для автоматического версионирования (от Reckon до Netflix-стека, от jgitver до VerCraft и других) в Gradle и Maven, разберемся, как они работают под капотом, и подберем наиболее подходящий инструмент. Кроме того, заглянем в мир джавовых утилит для работы с Git, освежим знания о его внутреннем устройстве и посмотрим, как можно эффективно автоматизировать релизный процесс.
IDE снаружи и внутри: от разбора механизмов к сборке решений

Amplicode
Разработчики делятся на два типа: одни не могут жить без своей любимой IDE, а другие уверены, что «все нужно делать руками». Первых спикер познакомит с внутренним устройством их любимой среды, а вторых — попробует переубедить, показав, как инструменты повышают эффективность работы.
Kotlin и другие языки программирования
Лучшее из двух миров: Kotlin Coroutines и gRPC для эффективного взаимодействия между сервисами

Райффайзен Банк
Бахром расскажет о возможностях использования Kotlin с gRPC для эффективного решения различных задач в проекте, включая асинхронность с помощью корутин, Channels и Flows, способы взаимодействия с сервером (Server Streaming, Client Streaming), а также преимущества Туре Safety и Type-Safe Builders в Kotlin.
Kotlin и контекстно-ориентированное мышление

Центр научного программирования
Еще одно -ориентированное программирование. На этот раз контекстно. Александр расскажет, что такое контекстно-ориентированное программирование, как оно работает (да!) в разных языках. Разумеется, обсудим контекстные ресиверы и контекстные параметры в Kotlin (параметры выходят в 2.2) и зачем они нужны.
ART Memory Management

Syntacore
ART — Android RunTime — виртуальная машина в ОС Android, в которой исполняются пользовательские приложения. ART можно считать альтернативной реализацией VM для языка Java, в котором есть свои интересные особенности, в частности механизм управления памятью и сборкой мусора. К сожалению, эта тема все еще слабо освещена, поэтому в своем рассказе Роман предлагает погрузиться в Java-мир, отличный от мейнстримного OpenJDK, и узнать, как бывает еще.
Производительность
JMH: вводный курс по микробенчмаркам

Контур
Доклад для тех, кто хочет начать использовать JMH для написания микробенчмарков или углубить свои знания этого инструмента: вы познакомитесь с базовыми принципами создания микробенчмарков и основными возможностями JMH.
Как избавиться от рекурсии и исправить глупую ошибку в Google

SberDevices
Максим расскажет про исследование различных подходов к оптимизации рекурсии. Рассмотрит и сравнит их между собой, чтобы получить наглядные цифры. Кроме того, осветит оптимизацию хвостовой рекурсии, рекурсии при обходе деревьев, любой рекурсии через DeepRecursiveFunction. Расскажет, как во время исследования обнаружил и исправил глупую ошибку в коде Google, связанную c попыткой оптимизации рекурсии.
JDK
Java 24. Горячие JEP’ы
18 марта состоится релиз Java 24, и, по традиции JPoint/Joker, мы детально разберем все ключевые изменения. Какие нововведения ждут разработчиков? Какие JEP окажут влияние на повседневное написание кода? Разберемся, какие улучшения внесены в язык и платформу, на что стоит обратить внимание в первую очередь и какие изменения подготовят нас к будущей юбилейной LTS-версии Java. Вместе посмотрим на эволюцию языка и обсудим, как эти новшества могут повлиять на наш код и какие инструменты помогут быстрее адаптироваться к изменениям. Присоединяйтесь, чтобы быть в курсе актуальных трендов!
Как мы ускорили компилятор Java (javac) вдвое

Axiom JDK
Скорость компиляции Java в силу целого ряда причин невысокая, особенно если сравнивать с некоторыми другими языками. В Axiom JDK поставили и успешно решили задачу ускорения компиляции, добившись двукратного прироста скорости, а также заметного снижения потребления памяти и CPU при компиляции.
Эволюция моделей памяти

Мир Plat.Form
Цель доклада — помочь лучше разобраться в ключевых аспектах моделей памяти и показать, как они эволюционировали до сегодняшнего дня. Будет полезно всем, кто интересуется вопросами многопоточности и конкурентности.
Инфраструктура
Как мы Wasm для Istio на JVM писали

Альфа-Банк
Дмитрий опишет преимущества использования сайдкаров в Istio, а также положительные стороны JVM-технологий. В Альфа-Банке попытались совместить эти две технологии для решения проблемы OAuth2 аутентификации.
Спикер кратко расскажет о развитии Istio/Envoy, Wasm, Kotlin/Wasm. Объяснит, почему выбор пал на эти технологии, когда уже есть готовые мейнстримные решения. Приведет перечень граблей, на которые в команде наступили и которые вы можете обойти (ну или наступить на них тоже, если хочется).
AI Assistants под капотом: Redis, Redis, Redis

Yandex Cloud
В Yandex Cloud разрабатывают AI Assistants API — инструмент для создания AI-ассистентов. С точки зрения требований сервис интересен необходимостью соблюдать низкий оверхед при вызове генеративной модели. Во время разработки для минимизации задержки решили по минимуму заходить на диски за счет использования Redis.
В докладе разберем архитектуру решения, заменим SQS и Kafka на Redis. Наступим на несколько граблей с Redisson и срежем все усилия по минимизации задержки из-за нюансов деплоя.
Optimising your Inner Development Loop with Spring Boot 3.1+ and Docker

Buralo Technologies
У версии Spring Boot 3.1 и выше появилась новая фича, которая называется development-time services (сервисы для оптимизации времени разработки) и помогает оптимизировать цикл внутренней разработки. Во время сессии лайвкодинга спикер покажет вам, как использовать эту новую фичу с Docker Compose и Testcontainers. Сначала — как она работает из коробки, затем — как интегрировать новые типы контейнеров, применяя абстракцию ConnectionDetails, которая была добавлена в Spring Boot 3.1. Сделаем это, используя дженерик-контейнер и поддержку пользовательских модулей в Testcontainers.
Обработка данных
Data retrieval на пальцах

Этот доклад — о механизмах выполнения запросов на чтение в различных современных хранилищах данных: от классических реляционных СУБД до экзотических колоночных и распределенных. Разберемся, какие виды индексов существуют и как они используются в различных движках. Доклад должен помочь разработчикам лучше ориентироваться в многообразии современных систем хранения данных.
Что может пойти не так с exactly-once обработкой сообщений в Kafka?

Яндекс
В докладе разберем:
как выстрелить себе в ногу, используя голые транзакции Kafka;
как с этим может помочь Kafka Streams;
чем может быть полезен Apache Flink, если мы умеем «готовить» предыдущие пункты. Все это сопроводят примерами кода на Java, позволяющими ровно один раз вычитать и записать данные в Kafka.
NoSpring
Jakarta Data. Что это означает для Java-сообщества?

Сбер
Не так давно вышла новая спецификация в мире работы с данными — Jakarta Data. Как можно понять из названия, эта спецификация из проекта Jakarta EE. Казалось бы, кого это волнует, если бы не Hibernate, который решил, что теперь реализует две спецификации — Jakarta Persistence API (aka JPA) и Jakarta Data. В Сбере работают с Hibernate чаще через Spring Data, которая имеет проблемы с реализацией этой спецификации. И что теперь делать?
Что же будет происходить дальше и как мы будем с этим жить — ответим на эти вопросы в докладе. Детально разберем, почему Spring Data не может реализовать спецификацию, и обсудим, можно ли в теории использовать Jakarta Data в проектах Spring.
О Quarkus Extension в трех действиях

Точка
В докладе Максим поделится опытом создания расширений, а также продемонстрирует некоторые возможности Quarkus Extension Framework в нескольких кейсах, которые потенциально могут случиться в жизни Quarkus-разработчика.
PostgreSQL
Миграция с IBM WebSphere+Oracle JDK+Oracle DB на Libercat+Axiom JDK+PostgreSQL

ПСБ
В ПСБ в 2024 году проходили активности по переходу на российское ПО. Константин расскажет, как в ПСБ планировали и реализовывали этот переход для большой высоконагруженной системы с enterprise-решения от IBM и Oracle на российские решения от Axiom и Postgres. Кроме этого, как разгружали СУБД путем перевода неструктурированных данных из нее в объектное хранилище на базе Ceph.
Многопоточная вставка данных в БД: от скорости к атомарности. Spring + PostgreSQL

Газпромбанк
В докладе Дмитрий расскажет, как можно ускорить вставку данных при помощи распараллеливания этого процесса в Spring, а также как сохранить атомарность всей операции. Затронем batch update в Spring и PostgreSQL, обсудим, почему обновление — это тяжелая операция и как можно ускориться в текущем технологическом стеке. Кроме того, спикер рассмотрит другие подходы к сохранению атомарности и покажет различия между ними в бенчмарках.
Геймдев
libGDX. Делаем игру

Т-Банк
Обзорный доклад про возможности создания игр на платформе Java с примерами. Бегло рассмотрим:
базовые концепции: игровой цикл, deltaTime, шейдеры, паттерн проектирования Entity-Component-System и т. п.;
существующие игровые движки и фреймворки на Java/Kotlin;
проблематику портирования игр на разные платформы и консоли;
фреймворк libGDX и набор доступного инструментария.
Будет интересно тем, кто желает расширить свой кругозор и посмотреть на задачи и подходы вне энтерпрайз-разработки.
Легаси. Оптимизации. Обфускация. Героическая борьба с Minecraft

Т-Банк
Многие даже не подозревают, что Minecraft — это не просто игра, а целая экосистема, которая развивает навыки работы с Java, сетевыми протоколами и байт-кодом. В рамках этой сферы создаются библиотеки и фреймворки, которые могут быть полезны и в энтерпрайз-разработке. Например, опыт работы с Netty или миксинами можно применить в высоконагруженных системах или при модификации легаси-кода. Так что Minecraft становится не только площадкой для творчества, но и стартовой точкой для профессионального роста разработчиков.
Cassandra
Cassandra: почему мой запрос тормозит?

Вы используете Apache Cassandra и случилось невероятное: какой-то, а может, и все запросы в базу у вас начали тормозить… Без паники, в этом докладе мы попробуем понять, что делать в таком случае, какие инструменты можно использовать для того, чтобы локализовать и вылечить проблему, а также разберем типичные случаи и примеры из жизни.
Из Elasticsearch в Cassandra

Т-Банк
Ренат расскажет, как в Т-Банке переводили свой сервис с хранилища Elasticsearch на Cassandra: что нужно знать, прежде чем принимать решение о переходе, какие есть особенности и ограничения, как переехать без даунтайма и не затронуть пользователей. Спикер поделится деталями реализации и проблемами, с которыми столкнулись.
Тестирование
Проверка тестов в бою: мутационное тестирование с Pitest

Техплатформа Екома и Райдтеха Яндекса
В докладе разберем, как внедрить мутационное тестирование в реальный проект и избежать распространенных проблем. Поговорим о том, как настроить Pitest для анализа только измененного кода в PR, чтобы ускорить процесс, и как справляться с ложноположительными срабатываниями. Обсудим, что делать, если стандартных мутаторов не хватает, и как писать свои. Александр покажет, как интегрировать мутационное тестирование в CI/CD и настроить его так, чтобы команда действительно им пользовалась.
Другое
Lightning Talks
Lightning talks — это отличный формат, чтобы динамично обсудить тему и найти единомышленников. Вас ждут пятнадцатиминутные доклады на профессиональные или околопрофессиональные темы и живые обсуждения. Давно хотели попробовать себя в роли спикера? Вам не терпится поделиться с миром идеями или кейсами из рабочей практики? Посмотрели выступления JPoint и чувствуете, что можете добавить к докладам что-то свое? Тогда подавайте заявку заранее по ссылке или записывайтесь на выступление прямо на площадке!
Виртуальные потоки: новые возможности для I/O bound микросервисов

РСХБ.Цифра
Новая фича «виртуальные потоки», появившаяся в Java 21, призвана повысить эффективность многопоточного кода. Но в чем заключается ее инновационность и в каких случаях она может привести к значительной оптимизации и ускорению кода? Об этом расскажет Иван.
Заключение
Напомним, что конференция пройдёт в Москве —, но для всех, кто не готов добраться до московской площадки, доступно и онлайн-участие. Остальная информация о конференции и билеты — на сайте. Если остались вопросы, смело задавайте в комментариях.
А мы напоследок ещё раз напомним, что у нас к вам тоже есть вопрос об используемых технологиях — так что смело проходите опрос.