Наши на Joker 2019

Осень пришла — учиться пора! Свежий прохладный воздух, затяжные дожди и падающие листья — идеальный сеттинг для приобретения новых знаний и навыков. Возможно, именно поэтому много крутых IT-событий проводят в это время. Например, международная Java-конференция Joker 2019, прошедшая 25–26 октября 2019 в здании Экспофорума в Питере.

Это крупное событие в среде опытных разработчиков и тимлидов растянулось на целый уикенд и включило в себя четыре talk-трека, сорок технических докладов разных уровней сложности (уже знакомая нам классификация — будет подгорать, введение в технологию, для практикующих инженеров и хардкор) и около 2000 коллег-участников, с которыми прямо на месте можно было обсудить весь этот размах. Понятное дело, пропустить такое мероприятие ITSupportMe не могли.

Первый день конференции таил в себе немало противоречий. С одной стороны, он был более лайтовым — большинство тем носило вводный или практико-ориентированный характер — с другой — именно после этого относительного ровного информативного потока слушателей ждала настоящая пуканоподгорающая дилемма в конце вечера. Но обо всем подробнее.

Joker 2019 открыл один из основателей Spring Framework Юрген Хеллер, который вместе со своим коллегой из компании Pivotal Джошем Лонгом продолжил свою миссионерскую практику введения в мир Spring Framework and Spring Boot. Лучший спич, кстати, по версии наших программистов. К слову, введением в технологию лекторы не ограничились и подготовили ещё по одному докладу, на этот раз для практикующих инженеров. Так, к концу этого вечера Джош Лонг продемонстрировал всем желающим свой взгляд на тестирование Spring приложений и сервисов. Ну, а на ночь грядущую не лишним было послушать выступление Юргена Хеллера, посвященное детальному разбору функционала Spring Framework 5.2.

Но вернемся к началу. Если первая тема давно набила вам оскомину, и ничего нового именитый разработчик рассказать вам не мог, то, возможно, параллельные спикеры могли как-то исправить ситуацию: Геррит Грюнвальд (Karakun AG) и его попытки убедить, что Джава на рабочем столе не мертва, Томас Вюртингер (Oracle), рассказывающий и показывающий, как улучшить производительность с GraalVM, ну, и куда же без хардкора — Владимир Озеров (Hazelcast), раскрывающий общие подходы к организации многопоточности в распределенных системах, а также конкретные архитектурные решения своей команды.

Два введения в технологию ждали слушателей и в следующей порции выступлений: Саймон Риттер (Azul Systems) обсудил с присутствующими важные функции, добавленные в Java со времен JDK 9, а также рассмотрел состояние долгосрочных фьючерсов; Берр Саттер (Red Hat) показал, как Java оптимизирована для микросервисных и серверных архитектур. Кроме того,  практикующие инженеры получили возможность улучшить производительность реактивного сервиса вместе с Олегом Докукой (Netifi, Inc), а любители немного посушить мозги над сложной задачкой открывали мир компиляторов и HotSpot «C2» JIT вслед за Клиффом Кликом.

После обеденного перерыва (к слову, отлично организованного: просто, но со вкусом, а главное, никаких очередей) слушатели с новыми силами окунулись в мир интеллектуального чиллинга. Три информативных введения в технологию ожидали их: Себастьян Дашнер (IBM) поговорил о том, как сделать более продуктивные рабочие процессы разработки, Юрий Артамонов (JetBrains) предложил пройти краш-курс по IntelliJ IDEA Plugin DevKit, а Роберто Кортез (Talkdesk) показал, как GraalVM может помочь интегрировать MicroServices и другие части вашего приложения. Это помимо уже упомянутого доклада Джоша Лонга.

Ближе к вечеру градус сложности докладов немного повысился — Никита Коваль (JetBrains) рассказал, как Lincheck помогает в тестировании многопоточных алгоритмов, а Алексей Андреев (Delightex) пожаловался на трудности перевода из Java в JavaScript. Были и просто информативные выступления двух представителей технологических китов: Марк Хеклер из Pivotal о Spring Security для N00bz и Далиа Або Шеаша из IBM об особенностях Java 8 и специфике перехода на Java 11 или 12.

Ну, и последняя связка — помимо отмеченного выше доклада от ведущего специалиста Pivotal Юргена Хеллера, практикующих инженеров могло заинтересовать выступление Дмитрия Константинова (Netcracker), посвященное Apache Cassandra, её производительности, внутренним проблемам и преимуществам. Кроме того, Кей Хорстманн из университета Сан-Хосе представил вниманию собравшихся эволюцию Java 13 и выше. Ну, и одна хардкорная штука ожидала тех, кто не боится бессонницы — Ионут Балосин (Raiffeisen Bank International AG)  вместе со всеми желающими проверил эффективность нового современного JIT-компилятора GraalVM по сравнению с  JIT C2.

Наконец, последнее выступление — Барух Садогурский (JFrog), который и предложил участникам Joker 2019 похоливарить на довольно щекотливую тему «DevOps для разработчиков (или против них?!)». На этой шумной ноте можно было и заканчивать, но организаторы пошли дальше — вечеринка с пивом и музыкой, различными зонами для отдыха, общения и обсуждения ждала всех, кто хотел разгрузить голову после такой насыщенной пятницы.

Для наших же ребят финал первого дня особенно запомнился возможностью лично поговорить с одним из основателей Spring Framework Юргеном Хеллером и его коллегой по компании Pivotal Марком Хеклером, которых они случайно встретили в зале после конференции. Наши разработчики поделились своим впечатлением от выступлений именитых спикеров, задали им пару вопросов про «потенциальное развитие Java как языка программирования, реактивного программирования, RSocket и Spring WebFlux и поделились, что бы хотели услышать в их докладах в будущем». Примечательно, что эта незапланированная встреча прошла максимум информативно и позитивно: как отмечает Сергей Волосович, «они очень дружелюбные были и на любой вопрос старались развернуто отвечать и подробно».

Второй день Joker-а оставил шутки в сторону и сконцентрировал внимание участников на практических задачах и проблемах Java технологий. Только считанные темы выступлений были посвящены введению в технологию. Так, в 12.30 Трастин Ли из LINE+ Corporation рассказал про микросервисную структуру Armeria, его сменили Яцек Куницкий из SoftwareMill в 14.30, поведавший собравшимся про ScalaTest, и Симонe Бордет из Webtide, в 16.30 продемонстрировавший эффективность одновременных сборщиков мусора: ZGC & Shenandoah. Произвел же впечатление на наших разработчиков завершающий доклад Стивена Чина «Расшифровка технохайпа для занятого кодера» — о последних тенденциях сегмента: блокчейн, чат-боты, конвейеры CD, AI, машинное обучение и др. Как замечает Сергей Волосович, «помимо новых инструментов, я встретил и те, которые использую сейчас, что не может не порадовать».

В целом же большинство выступлений второго дня были ориентированы на практикующих инженеров и, как правило, на примере конкретных кейсов рассматривали определенные проблемы и сложные моменты в технологии. Так, Кирилл Толчакев (ЦИАН) и Евгений Борисов (Naya Technologies) рассказали о том, как безболезненно внедрить React в свой проект и какие проблемы стоит учитывать при рефакторинге. Гуннар Морлинг из Red Hat представил практические варианты использования потоковых данных с Apache Kafka и Debezium. Тагир Валеев (JetBrains) поделился наблюдениями над «маленькими оптимизациями» Java 9-14. Никита Сальников-Тарновский (Plumbr) разоткровенничался на тему «Потоковое приложение — это не только код, но и 3–4 года поддержки в проде». Сергей Егоров из Pivotal поведал о подробностях релизов Testcontainers и провел краткий экскурс по теме для новичков. Наконец, Олег Ненашев (CloudBees) рассказал и показал, как его команда внедряла поддержку Java 11 в Jenkins.

В общем, интересных тем было хоть отбавляй, а это помимо обилия хардкорных направлений (Valhalla; Alibaba Dragonwell; плагин TornadoVM для OpenJDK; эффективные микросервисы; новые функций JVM и изменения в последней версии JDK). И это при всей бренности тела человеческого, ставящего непреодолимый физический лимит — не более 5 докладов в день!

Конечно же, на конференции нашлось место и массе оффтопных ивентов. Были традиционные стенды работодателей, где предлагались призы на решение какой-нибудь головоломки. Привлекли наше внимание и Demo Stage, на которых разработчики (как правило, представители спонсоров) выступали с небольшими докладами и делились опытом. Ну, и закуски в течении дня, чай и кофе не давали нашим ребятам отвлекаться на проблемы житейские.

В целом поездка получилась очень продуктивной. Масса впечатлений, новые знакомства, горы заметок и пара-тройка черновых набросков на будущее и, конечно же, глоток свежего питерского воздуха — ради этого стоило потратить выходные и окунуться с головой в приключение!