Joker 2019: триумф года
Неделю назад, 25–26 октября 2019 года, в Санкт-Петербурге прошла Java-конференция Joker 2019. Что на ней происходило, какие доклады были, что показалось интересным — обо всём этом дальше.
Подобно феноменальному прокату по всему миру вышедшего в этом году фильма с таким же названием с Хоакином Фениксом в главной роли, Java-конференция, проходившая на огромных площадях «Экспофорума», тоже стала очень успешной — она преодолела рекордную отметку в 2000 человек (в комментариях можно уточнить, сколько точно людей было).
Кроме четырёх залов разной вместимости, в которых читались доклады параллельных треков, была выставочная зона со стендами компаний, Demo Stages для мини-докладов от компаний и сообществ, Lightning talks (мини-доклады от участников конференции), BOF-сессии и много чего ещё.
Выставочная зона
Огромный просторный зал с удобно расставленными по нему стендами позволял участникам комфортно пообщаться как с представителями компаний, так и друг с другом, удобно сидя на пуфиках.
Стенды компаний Сбербанк (с кофейней «Java Кафе» и возможностью принять участие в викторине, сыграть в игры и получить призы), BellSoft (с супергероями «Guardians of the Enterprise») и издательства ДМК Пресс (можно было полистать и приобрести книги).
Стенд Java User Groups
Была продолжена хорошая традиция, начатая в конце августа на IT-фестивале TechTrain 2019, с организацией совместного стенда Java-сообществ. Как можно видеть, на стенде снова присутствовали лидеры и активные участники московского, питерского и новосибирского сообществ: Андрей Когунь, Иван Углянский, Владимир Ситников, Иван Пономарёв и другие.
Стенд служил в качестве точки общения старых участников сообществ, спикеров и просто участников конференции, проходивших мимо. Было очень удобно использовать стенд как место для встречи между докладами для общения и обмена впечатлениями. На фотографиях ниже присутствует Андрей Когунь (наконец-то увидел его знаменитую футболку «Тот самый Когунь») c Алексеем Рагозиным и Андреем Ершовым.
В отличие от TechTrain 2019, мы не разыгрывали призы, но подготовили обновление игры «Угадай спикера». Игра по-прежнему доступна на сайте jugspeakers.online. Репозиторий с кодом приложения для совместной разработки находится теперь на GitHub здесь (не стесняйтесь ставить «звёздочки», авторам будет приятно). Были произведены следующие функциональные изменения в программе:
- улучшено качество многих фотографий;
- добавлены режимы «угадай доклад по спикеру» и «угадай спикера по докладу»;
- при запуске приложения автоматически выбирается ближайшая или проходящая конференция JUG.ru Group.
Для уже имевшихся режимов «угадай имя по фото» и «угадай фото по имени» (они подробно описаны были ранее) имеется полная информация (фото и имена спикеров) по всем конференциям JUG.ru Group всех лет до DevOops 2019 включительно. Для новых режимов «угадай доклад по спикеру» и «угадай спикера по докладу» есть иформация пока только по конференциям JPoint 2019, Joker 2019 и DevOops 2019. Планируется реализовать автоматическое или полуавтоматическое пополнение базы вопросов той же информацией, которая сейчас используется для отображения на сайтах конференций.
Demo Stage
Время между докладами можно было провести тоже весьма полезно, в нужное время подойдя к одной из Demo Stage для прослушивания мини-докладов. Следующие фото показывают Алексея Фёдорова и Владимира Красильщика, рассказавших об инфраструктуре систем, использующихся JUG.ru Group для хранения информации для проведения конференций, и новом проекте Личный кабинет.
Другой полезной информацией, полученной на мини-докладах, оказался рассказ Олега Ненашева о сервисе Dependabot. Прослушанным восторженно поделился, за что ему большое спасибо, IvanPonomarev (он же дополнительно сходил на доклад Олега следующего дня, где Олег также упоминал данный сервис). Dependabot автоматизирует обновление версий зависимостей в приложениях, создавая pull requests (PR) в ваших репозиториях. Необходимые шаги для этого:
- добавить ваши репозитории в сервис;
- последовательно разобраться с созданными сервисом PRs;
- при желании добавить в файл
README.md
бедж статуса сервиса (ссылку для беджа см. здесь).
Восхищённые, мы добавили в Dependabot как свои личные репозитории на GitHub, так и общий репозиторий.
Открытие
Алексей Фёдоров и Андрей Дмитриев открывают конференцию. Полный зал на открытии конференции. Андрей Когунь и Владимир Ситников рассказывают о программе конференции, обращая внимание участников на имеющиеся типы докладов.
Первый день
Juergen Hoeller и Josh Long в своём докладе Reactive Spring revisited рассказали о реактивных возможностях, появившихся в версиях Spring Framework 5.2 и Spring Boot 2.2. Полезно было получить исчерпывающую информацию из первоисточника, так как Juergen Hoeller является сооснователем и лидером проекта Spring Framework, а Josh Long — developer advocate в компании Pivotal. Совершенно разные по темпераменту докладчики успешно дополняли друг друга в повествовании.
Очень впечатливший доклад Алексея Андреева, названный им TeaVM: Трудности перевода из Java в JavaScript, про AOT-компилятор Java-байткода в JavaScript. Была дана общая иформация о проекте и перечислено множество технических сложностей, встретившихся при реализации с путями их преодоления. На Хабре есть пара статей автора про своё детище. О важности и востребованности проекта свидетельствует также статья о TeaVM в свежем номере Java Magazine.
С интересом послушал в этот день ещё один доклад Juergen Hoeller, теперь уже с акцентом только на Spring Framework — Spring Framework 5.2: Core container revisited. Кроме реактивных возможностей, о которых было рассказано ранее, было представлена информация ещё о многих других вещах: об изменениях в API, улучшениях производительности, интеграцией с GraalVM, дополнительной поддержке языка Kotlin.
Последним докладом первого дня стал DevOps для разработчиков (или против них?!) от Баруха Садогурского. Доклад оказался весьма провокационным и сильно расшевелил уже слегка утомившихся к вечеру участников конференции. Как всегда, Барух был в ударе и просто фонтанировал энергией.
BOF-сессии
Заключительным аккордом первой половины конференции явились тематические BOF-сессии. На фото показаны три сессии из четырёх: «Performance: Does business care?» (видны участники Cliff Click, Сергей Куксенко, Cay Horstmann и модератор Иван Крылов), «Horror stories» (с Никитой Сальниковым-Тарновским и Глебом Смирновым в качестве модераторов) и «Есть ли жизнь после Senior?» (модератор Андрей Когунь). За кадром осталась сессия «The best microservice framework» (с модераторами Дмитрием Александровым и Юрием Артамоновым).
Второй день
Евгений Борисов и Кирилл Толкачёв со своим докладом Spring Reactive Ripper продолжили тему реактивности в Spring, начатую на конференции в предыдущий день докладом Reactive Spring revisited. Доклад являлся обновленной версией их же Reactive или не reactive, вот в чем вопрос с апрельской конференции JPoint 2019, но с учётом изменений, произошедших в связи с выходом Spring Framework 5.2 и Spring Boot 2.2. Полезно и интересно оказалось посмотреть оба, различий в материале, как в начале и сообщили докладчики, оказалось около 30%.
Своебразный подход применил Тагир Валеев в докладе Java 9–14: Маленькие оптимизации, акцентировав внимание слушателей на менее известные улучшения производительности в последних версиях Java, которые остались в тени более громких и известных широкой публике фич. Улучшения коснулись строк, коллекций и чисел. Детальное изложение, подкреплённое примерами, надеюсь, не оставило равнодушным никого из слушателей в зале.
Доклад Testcontainers: Год спустя — рассказ Сергея Егорова о событиях, произошедших за последний год в проекте Testcontainers (пример его использования здесь), в котором Сергей является одним из двух главных разработчиков. Рассказ о событиях предварял краткий экскурс причины и истории появления проекта. Особенно показался интересным и важным анонс запланированного будущего развития.
Долгожданное возвращение Сергея Куксенко с докладом Нужны ли в Java «инлайн»-типы? Узкий взгляд инженера по производительности на проект Valhalla на конференции JUG.ru Group в качестве спикера! Всегда стараюсь попасть на доклады Сергея при их присутствии в программе конференций. Повествование было об очень важной части экспериментального проекта Valhalla — «inline types» (ранее называвшейся «value types»), которая, пусть не скоро, но появится в языке Java, существенно повлияв на производительность приложений. Блистательный доклад, соответствующая теме доклада футболка также на всех произвела впечатление.
Stephen Chin с докладом Decrypting tech hype for the busy coder завершил конференцию. Stephen Chin («SteveOnJava») — легендарная личность, ассоциирующаяся лично у меня прежде всего с проектом NightHacking. Недавно Стив покинул компанию Oracle и стал коллегой Баруха Садогурского в JFrog (который позднее тоже показался на сцене). Легковесность доклада («about… blockchain, chatbots, serverless, CD pipelines, AI, and machine learning»), возможно, оказалась вполне уместна, так как он был последним.
Закрытие
Андрей Дмитриев закрыл конференцию, традиционно пригласив участников программного комитета, команду JUG.ru Group и спикеров на сцену.
Напоследок можно ещё раз пролистать твиты с хэштегом #jokerconf и грустно вздохнуть, что конференция так быстро закончилась. До встречи на JPoint 2020!
Пожалуйста, поделитесь в комментариях своими впечатлениями от конференции: какие доклады посетили и они понравились или не понравились, видео каких бы докладов порекомендовали посмотреть в первую очередь — всё что угодно, что посчитаете интересным дополнением к данному обзору.
15–16 мая 2020 года в Москве состоится конференция для Java-разработчиков JPoint 2020, на которую уже открыт приём заявок на доклады и уже можно купить билеты.