
Конференцию 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) и зачем они нужны.

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

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

Максим Сидоров
SberDevices
Максим расскажет про исследование различных подходов к оптимизации рекурсии. Рассмотрит и сравнит их между собой, чтобы получить наглядные цифры. Кроме того, осветит оптимизацию хвостовой рекурсии, рекурсии при обходе деревьев, любой рекурсии через DeepRecursiveFunction. Расскажет, как во время исследования обнаружил и исправил глупую ошибку в коде Google, связанную c попыткой оптимизации рекурсии.
JDK
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

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

Алексей Рагозин
Этот доклад — о механизмах выполнения запросов на чтение в различных современных хранилищах данных: от классических реляционных СУБД до экзотических колоночных и распределенных. Разберемся, какие виды индексов существуют и как они используются в различных движках. Доклад должен помочь разработчикам лучше ориентироваться в многообразии современных систем хранения данных.
Что может пойти не так с 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, обсудим, почему обновление — это тяжелая операция и как можно ускориться в текущем технологическом стеке. Кроме того, спикер рассмотрит другие подходы к сохранению атомарности и покажет различия между ними в бенчмарках.
Геймдев

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

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

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

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

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

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