В этом году Java-конференция получилась двусоставной: онлайн-часть уже прошла, а вот офлайн-день ещё предстоит 24 июня в Санкт-Петербурге (и ещё не поздно решить в нём поучаствовать). Причём несколько видеозаписей уже доступны всем желающим. Поэтому хотим этим текстом поймать трёх зайцев сразу: Порадовать Хабр этими Java-докладами без регистрации и смс. Написать, что ещё было в онлайновой части. И рассказать, что будет в офлайне. У обладателей билетов уже есть доступ ко всем видеозаписям, а для всего мира мы пока что открыли такие: Непрерывное профилирование в облаке с помощью eBPF В 2017 году Андрей Паньгин и Вадим Цесько (Одноклассники) прямо во время своего доклада на JPoint взяли и выложили на GitHub новый Java-профайлер async-profiler.  Спустя пять лет у этого GitHub-репозитория уже 5000 звёзд — инструмент явно оказался востребован. И теперь в новом докладе Андрей с двумя коллегами по Одноклассникам зашёл дальше. Профайлер может дать много интересной информации об исполняемом приложении — но что, если в продакшне произошёл какой-то непонятный выброс и он уже закончился, а вы хотите разобраться в произошедшем? Для такого нужно, чтобы профайлер работал постоянно и можно было в любой момент узнать, чем приложение было занято в прошлом. Андрей, Леонид Талалаев и Артём Дроздов вместе работали над этим и теперь рассказали о нюансах. Тут сразу напрашивается вопрос: «Не окажется ли так, что при непрерывной работе сам профайлер и станет главной проблемой производительности, из-за которой всё начнёт тормозить?» На это Андрей бодро ответил: «Если неправильно сделать, конечно, начнёт!». А как  правильно? Вот и узнаем. После доклада было ещё и длиннющее активное обсуждение со зрителями — но вот оно велось уже не под запись. Почему мы решили переходить на R2DBC и чем это закончилось R2DBC существует не первый год, но для многих это название по-прежнему выглядит чем-то вроде имени персонажа «Звёздных войн». Что это вообще такое и зачем оно нужно, когда у нас в Java-мире есть привычный JDBC?  Главное, что нужно понимать о названии: R2 означает не «вторая бобина» (Reel 2), как в «Звёздных войнах», а «reactive relational». То есть это сочетание реактивного подхода и старых-добрых реляционных БД. А об остальном и рассказал Антон Котов из Сбера. В программе этот доклад был обозначен значком «смузи»: для получения пользы от него не требуется предварительно знать что-то про R2DBC. Однако это не значит «только для джунов», он привлёк внимание и опытных специалистов из крупных проектов. Например, после доклада в видеосозвоне с вопросами можно было увидеть Олега Анастасьева из Одноклассников, и диалог шёл в ключе «нас интересуют масштабы от миллиона соединений». Не клади все яйца в один билдпак На JPoint 2019 Дмитрий Чуйко выступал с докладом под названием «Не клади все яйца в один контейнер». Теперь он вернулся с новым выступлением, название которого взято по аналогии. Однако доклад не строго про билдпаки. Контейнеры — это, конечно, удобно. Но с ними легко может возникнуть, например, недоутилизация железа (и, соответственно, перерасходы денег). Нагляднее всего у Дмитрия это показывала аналогия из офлайнового мира — фотография с посылками, где все коробки стандартные и этим удобные, но из-за этого явно очень недоутилизированные: Если вам при взгляде на эту фотографию стало больно и захотелось сделать всё  возможное, чтобы такого не происходило — доклад для вас. Интервью с Дмитрием Чуйко На JPoint бывают не только доклады, но и другие активности. И после того, как Дмитрий выступил с докладом про контейнеры, он ещё и поотвечал на вопросы на другую тему. Компания BellSoft, где он работает, давно известна своей Liberica JDK. Но с недавних пор у неё появился ещё и продукт Axiom JDK. Что это такое? Чем отличается от «Либерики»? Кому это нужно? Тут разговор попроще докладов, слайдов с кодом не ждите. А вот неочевидные нюансы из мира сертификации есть. Разбор доклада Ted Neward «Iconoclasm» В далёком 2015-м Тед Ньюард выступил у нас на Joker с ярким докладом «Иконоборчество». Многим запомнилась, например, универсальная архитектурная диаграмма. Над каким бы проектом вы сейчас ни работали, если посмотрите на эту диаграмму, сможете увидеть в ней свой проект: В отличие от многих других технических докладов, этот за семь лет не устарел: диаграмма по-прежнему всё такая же универсальная! Более того, его порой продолжают вспоминать — так что это своего рода классика наших конференций. Но кто-то его пропустил, кто-то пришёл в разработку уже после 2015-го, а кто-то не готов слушать на английском языке.  Поэтому мы добавили докладу русскоязычные субтитры и сделали такую активность: Владимир Ситников и Алексей Стукалов в прямом эфире смотрели запись этого доклада, а как только хотелось что-то обсудить, ставили на паузу и обсуждали. В итоге часовой доклад превратился в трёхчасовой (!) разбор доклада. Мини-доклад «Composable systems, или Как быстро писать эффективные базы данных на Java» У Алексея Гончарука из Querify Labs было 15-минутное партнёрское выступление — казалось бы, что можно успеть рассказать за 15 минут? И сам он сказал, что отчасти это «приглашение к дискуссии», потому что интересно в видеосозвоне после него обсудить ситуации разных участников. Однако, когда о чём-то рассказывают люди с нестандартным опытом, это всегда интересно. А основатели Querify Labs контрибьютили в Apache Ignite и Apache Calcite, так что про базы данных они знают больше многих, и могут поделиться экспертным взглядом. Какие недостатки у Java как языка для БД? А почему, несмотря на них, сейчас ситуация для Java стала благоприятнее? Как порог входа в БД изменился по сравнению с тем, что было лет пять назад? Об этом можно успеть понять главное и за 15 минут. А чего в открытых видеозаписях не увидеть? Ну, понятно, докладов было куда больше, чем попало в число открытых. Просто в качестве одного примера, вызвавшего положительные отклики: Антон Козлов в 2020-м уже рассказывал про Coordinated Restore at Checkpoint, и видеозапись того доклада давно доступна всем желающим, а в этот раз он подготовил материал о текущем состоянии проекта с новыми примерами использования.  Или вот пример очень нетипичной темы: Дмитрий Завалишин работает над операционной системой «Фантом», принципиально отличающейся от привычных нам, и поделился нюансами сборки мусора в таких условиях. Возможно, услышанное в этом докладе никак не применить на следующий день в своём рабочем проекте, но часто ли можно послушать подробный рассказ про настолько нетривиальные кейсы? Помимо обычных докладов, были ещё и воркшопы, где вместо теоретического монолога показывали что-то на практике: Алексей Рагозин учил пользоваться различными профайлерами (Java Flight Recorder, Mission Control, Visual VM), а Иван Кочергин и Игорь Тресоумов показывали создание онлайн-маркетплейса на платформе Micronaut. А помимо всех этих выступлений, были и активности, которые вообще не записывались — и там зачастую тоже происходило много интересного. Например, за каждым докладом следовал видеосозвон, где участники могли не под запись порасспрашивать спикера, и порой эти созвоны превращались в долгие увлекательные дискуссии. После докладов Никиты Летова про @Transactional и Андрея Сальникова про индексы в PostgreSQL обсуждения длились буквально часами. Андрей в какой-то момент сказал «мне пора, в моём городе уже час ночи» — а потом увлечённо поотвечал ещё немного :) Ещё один «видеосозвонный» формат не под запись — BoF-сессии, где вместо доклада сразу идёт тематическая дискуссия. Там обсуждения тоже порой бывали бурными и временами могли уйти в сторону от исходной темы. Начали с того, кто должен заниматься инфраструктурой, в процессе добрались до вечного вопроса «из-за созвонов нет времени по-настоящему поработать» и делились лайфхаками: говорят, помогает застолбить в календаре встречу с самим собой «мне надо поработать, не ставьте на это время ничего». Ну и милая деталь напоследок. Этот JPoint был уже 10-м по счёту. И поскольку тут юбилей, начался он ностальгически. На открытии вспомнили песню про Java от «Научно-технического рэпа», записанную ещё к JPoint 2014: Тут можно было бы описать все доклады из программы: Иван Углянский расскажет про Project Loom, Иван Пономарёв сравнит моки и Testcontainers… Это всё так, там будут интересные доклады. Но программу можно и на сайте увидеть.  А здесь скажем о другом. JPoint впервые с 2019-го возвращается в офлайн. Поэтому мы хотим, чтобы все соскучившиеся по живому общению Java-разработчики получили его сполна, и собираемся предоставить всё для этого: Дискуссионные зоны, где после доклада можно подробно расспросить спикера не по видеосвязи.  Круглые столы, где вместо докладов-монологов — живые обсуждения.  Достаточно времени для нетворкинга, чтобы пообщаться с другими участниками.  В общем, офлайновый день JPoint — это не просто о том, чтобы сидеть и слушать доклады. Это о том, чтобы Java-сообществу снова было где встретиться и посмотреть друг другу в глаза. Напомним, пройдёт он в Санкт-Петербурге уже в эту пятницу, 24 июня.  А билеты устроены так: они дают и право участия в офлайн-дне, и доступ ко всем видеозаписям прошедшего онлайна (в открытый доступ эти видеозаписи спустя несколько месяцев).   Если заинтересовало, вся информация и билеты — на сайте.  Будем сами рады наконец увидеть всех не на мониторе!  ContentProvider