[Из песочницы] Отчёт о Java-конференции Joker-2015
16-17 октября 2015 года в Санкт-Петербурге состоялась конференция Joker 2015. В течение 2 дней было прочитано более 30 докладов, связанных с разработкой на языке программирования Java. Кто был среди докладчиков, какие доклады удалось посмотреть, что показалось интересным, об этом рассказывается далее.
Конференция Joker 2015 проводится ежегодно третий раз подряд, пока всегда в Санкт-Петербурге и всегда в октябре. Joker является близнецом-братом другой Java-конференции, JPoint. JPoint проходит тоже ежегодно, тоже проводилась трижды, бывает в апреле в Санкт-Петербурге (JPoint 2013) или Москве (JPoint 2014, JPoint 2015). Обе конференции делаются одной и той же командой JUG.RU.
За время, прошедшее с JPoint 2015 до Joker 2015:
Я воспользовался возможностью онлайн-просмотра конференции. При выборе докладов в первую очередь руководствовался личностями докладчиков, затем уже темой прочих докладов. Поэтому сразу были выбраны доклады Алексея Шипилёва, Евгения Борисова и Николая Алименкова. Очень жаль, что не было докладов Баруха Садогурского и Сергея Куксенко. Сергей был в качестве участника конференции, Барух незримо присутствовал в виде фотографии на картоне в полный рост. Фотография Сергея Куксенко с картонным Барухом.
Мой выбор докладов вовсе не означает, что прочие доклады хуже — это всего лишь мой выбор и только на время просмотра конференции. Выбирая конкретные доклады во время проведения конференции, не лишаетесь возможности просмотра остальных. Обязательно выборочно посмотрю видеозаписи остальных докладов, ссылка для их просмотра уже пришла по почте.
Открытие конференции
Приветственное слово организаторов. Три первые фотографии слева направо — Алексей Фёдоров, Иван Долгов, Андрей Дмитриев. Две следующие фотографии — Андрей Паньгин и Олег Анастасьев (представители спонсоров и докладчики).
Представители компаний-спонсоров, соответственно, EPAM, Deutsche Bank, T-Systems и Сбербанк-Технологии (две последние фотографии). Александр Маторин (предпоследняя фото) был одновременно и докладчиком конференции.
Доклады
Practicing at the Cutting Edge
Martin Thompson
Компания LMAX, сооснователем и CTO которой Мартин является, получила широкую известность программным продуктом Disruptor.
В своём докладе Мартин на основе собственного опыта сделал ретроспективу построения программных продуктов, использующих Java. Попытался провести сравнение с разработкой на C/C++, раскрыть приёмы дизайна приложений и взаимодействие с аппаратными средствами для достижения высокой производительности. Упомянул про необходимость культуры разработки и рассказал, что для этого требуется.
Повествование мне чем-то напомнило доклады Java Life Story Ани Барски и Платформа Java: прошлое и будущее Владимира Иванова. Во всех трёх случаях присутствуют разные аспекты Java и показывается их изменение во времени.
Spring Puzzlers: тонкости и нюансы работы Spring
Евгений Борисов
Доклад Spring Puzzlers — Начало на JPoint 2015 Барух Садогурский и Евгений Борисов проводили вместе. К сожалению, в этот раз Барух присутствовал лишь в картонном исполнении, Женя доклад проводил один.
На мой взгляд, Барух и Евгений составляют идеальный спикер-тандем. Являясь оба прекрасными докладчиками и обладая высокой квалификацией, они прекрасно дополняют друг друга. Экспрессивный Барух хорошо оттеняется спокойным Женей. Формат «Groovy Puzzlers» и «Spring Puzzlers» также удачнее смотрится в совместном исполнении.
Текущий выпуск «Spring Puzzlers» в значительной степени совпадал с уже представленным полгода назад на JPoint. Мне кажется, Евгению на этот раз удалось успеть задать больше загадок, т.к. на JPoint часть времени была потрачена на решение технических проблем. Ещё раз повторюсь, что остро не хватало Баруха.
The Lord of the Strings: Two Scours
Алексей Шипилёв, Oracle
Алексей обладает удивительной способностью собирать полные залы на свои доклады, увлекательно и интересно рассказывая на них о сложных вещах.
В данном докладе рассказывалось про разработку двух возможностей, которые должны вскоре появиться в JDK/JVM — Compact Strings и Indify String Concat. Compact Strings реализует компактное представление строк с однобайтовыми символами, Indify String Concat переносит выполнение конкатенации строк на время исполнения. Реализация того или другого (или и того, и другого) также значительно увеличивает производительность выполнения строковых операций.
Отличный доклад и прекрасный докладчик, получил удовольствие от просмотра.
Рефакторинг в функциональном стиле
Александр Маторин, Сбербанк-Технологии
Александр рассказал о приёмах функционального программирования при выполнении рефакторинга кода, написанного на Java. Все представленные приёмы основывались на возможностях, появившихся в Java 8. Не ограничился использованием Stream API, что наблюдается чаще всего на практике. Рассмотрел и продемонстрировал использование частичного применения функций и каррирования. Акцентировал внимание на максимизацию декларативности в коде.
Выразительный и полезный доклад. Как оказалось на следующий день, данный доклад хорошо дополнил Николай Алименков, о чём далее.
Ping-pong programming
Антон Кекс и Андрей Солнцев, Codeborne
Антон и Андрей продемонстрировали стиль парного программирования, активно практикуемый в компании Codeborne:
- Сначала первый программист пишет юнит-тест, который не проходит.
- Далее второй программист пишет реализацию функциональности, на которую ранее был написан тест, тест проходит. Сам пишет следующий юнит-тест, который не проходит.
- Первый программист пишет реализацию второй функциональности.
Идея хорошая, смотрится первые 15-20 минут достаточно живо. В конце выступления слушатели активно задавали в течение получаса вопросы. Было бы идеально и смотрелось бы лучше, если бы первые полчаса показать использование предложенной практики, вторые полчаса — отвечать на вопросы.
The Macro of Microservices
Josh Long, Pivotal
Джош является работником компании Pivotal, автором 5 книг. Он же при этом — Developer Advocate проекта Spring. Имеет большее отношение к Spring Boot, Spring Cloud и Spring Integration.
На примере сервиса Netflix показал последовательное движение от монолитной архитектуры к архитектуре с использованием микросервисов.
Живой доклад, смотрится легко. Для усиления эффекта, вероятно, нужно смотреть его же доклад следующего дня «The Bootiful Application», который я пока пропустил.
Get Past the Syntax, the Real Scare's in the Semantics
Venkat Subramaniam
Из всех приглашённых англоязычных докладчиков, которых пока удалось посмотреть, Венкат произвёл наиболее сильное впечатление. Для усиления эффекта при чтении доклада он дополнительно успешно помогал себе мимикой и жестикуляций. Вне зависимости от темы доклада было любопытно посмотреть.
Доклад касался темы важности семантики языка (естественного и программирования) в сравнении с синтаксисом. О том, что восприятие синтаксиса и семантики языка зависит от текущего опыта и знаний. Всё декларируемое иллюстрировалось примерами как из естественного языка (английского), так и из различных языков программирования.
Рекомендую, даже если неинтересна тема доклада, посмотреть фрагмент видео для оценки мастерства докладчика.
WILD microSERVICES
Кирилл Толкачев и Александр Тарасов, Альфа-Банк
Кирилл Толкачёв известен мне тем, что с недавнего времени является соведущим данного подкаста (если не ошибаюсь, с выпуска про OSGi). Александр Тарасов, это имеет прямое отношение к теме доклада, недавно на CodeFreeze делал доклад про Docker. Эти две причины мне показались достаточными, чтобы выбрать их совместный доклад про микросервисы.
Доклад мне показался очень динамичным, слаженным и хорошо отрепетированным. Для демонстрации написания микросервисов использовались языки программирования Groovy и Java, фреймворки — Spring и Thrift, продукты — Docker и Consul.
После доклада слушателями задавались уместные вопросы, на все из них Кирилл и Александр успешно ответили. Не пожалел, что выбрал этот доклад.
Чего ждать от Java 9?
Иван Крылов, Azul Systems
Иван Крылов работает в компании Azul, которая известна продуктами Zing (собственная реализация JVM) и Zulu (собственная поддерживаемая сборка OpenJDK). Ранее уже слушал другие доклады Ивана, поэтому мой выбор докладчика и доклада тоже был осознанным.
Было интересно и полезно ознакомиться с любезно собранной и систематизированной информацией о новых возможностях Java 9. Вероятно, не все возможности, про которые рассказывалось, войдут в окончательную версию. Если заинтересованы в квалифицированной и хорошо поданной информации на данную тему — очень рекомендую данный доклад.
Современный взгляд на реализацию классических дизайн-паттернов в Java
Николай Алименков, EPAM / XPInjection
Как мне кажется, главная заслуга Николая (для меня, как слушателя) — организация конференции JEEConf, проходящей ежегодно в Киеве. Увы, ни разу пока не посещал очно, но многократно пользовался доступом к видео и презентациям.
Неизменно выбираю доклады Коли при их наличии в программе. В докладе был изложен взгляд на классические шаблоны проектирования в современном окружении языковых возможностей и активно используемых фреймворков. Многие тезисы достаточно спорны, что вызвало задание вопросов из зала.
Доклад Николая, на мой взгляд, в какой-то степени дополняет доклад Александра Маторина.
Клиентская Java вне браузера: делаем нативные клиенты на Java
Никита Липский, Excelsior
Охарактеризовал бы доклад как обзорный к продукту Excelsior JET, выпускаемый в компании, в которой работает Никита. Доклад точно повторял ранее уже представленное на конференции JEEConf 2015, что я уже успел посмотреть в записи.
Доклад хороший, но ожидал к ранее рассказанному дополнительно услышать какие-нибудь подробности про реализацию поддержки Java 8, недавно появившейся в продукте.
Желающим больших технических подробностей рекомендую посмотреть выступление Никиты Липского и Павла Павлова на JUG.RU:
В течение трёх часов там исчерпывающе рассказывается об истории создания и архитектуре продукта с его демонстрацией.
Iconoclasm
Ted Neward
Завершающим докладом последнего дня конференции стал нетехнический доклад о бунтарях или, если выражаться штампами, роли личности в истории (науке, культуре, искусстве, IT-индустрии).
Расширил свой кругозор, узнав о следующем:
Считаю, что иногда разбавлять технические доклады чем-то подобным — хорошая практика.
Закрытие конференции
Алексей Фёдоров, Иван Долгов и Андрей Дмитриев на закрытии конференции.
Приглашённые Алексеем Фёдоровым на сцену все участники команды организаторов вместе с волонтёрами.
Дополнительно присоединившиеся к ним все докладчики конференции.
Итоги
Единственным отрицательным моментом остаётся периодически возникающие проблемы с обедом. Во второй день решением стала организация обеда в две смены.
Положительных сторон значительно больше:
- высокий уровень организации конференции;
- оперативное решение организаторами технических и организационных вопросов;
- учитываются пожелания, высказанные при обратной связи в прошлые годы;
- цена билетов не кажется чрезмерной, особенно при ранней покупке;
- после конференции присылают ссылку на видео всех докладов;
- файлы презентаций докладов становятся доступными на сайте сразу после окончании конференции;
- можно купить просмотр онлайн-трансляции.
Если нет возможности очного посещения конференции, онлайн-трансляция способна помочь:
- сэкономить время на поездку, деньги на самолёт/поезд и гостиницу;
- в процессе трансляции можете прокрутить назад, если что-то прослушали или проспали утром начало;
- если послушали начало доклада и он не понравился, легко переключиться на другой параллельный доклад, причём, можно на его начало;
- легко организовать совместный просмотр с коллегами у себя в конференц-зале, купив один билет на онлайн-просмотр;
- становятся неактуальными возможные недоразумения с обедом.
Увы, теряете возможность личного общения с участниками и докладчиками.
Конструктивные предложения по улучшению и так отличного мероприятия:
- постараться не повторять доклады на конференциях Joker и JPoint. Аудитория у обеих конференций одна и та же. Мне кажется, что только при изменении языка докладов (английский на русский или наоборот) или значительном обновлении содержания докладов (50% и более) повторение уже становится допустимым;
- добавить рекомендательные функции, которые могли бы помочь при выборе доклада для просмотра после конференции. Предлагаю сделать отображение рейтинга доклада по отзывам участников, который определяется при обратной связи, прямо на страницах описания докладов. Если несложно технически, также добавить там же возможность добавления комментариев;
- между докладами уменьшить перерыв с получаса минут до 15;
- чётче соблюдать регламент по времени, иначе не успеть перейти из зала в зал;
- не забывать использовать микрофон при задании вопросов из зала, иначе не слышно в онлайн-трансляции;
- сделать практику обеда в 2 смены постоянной, начиная с предстоящей JPoint.
18 октября проходил University Day с ограничением по возрасту участников (не старше 24 лет). Судя по темам докладов и докладчикам, там тоже было что посмотреть интересного. Так как легальной возможности ознакомиться с докладами не предоставлялось, можно было бы предоставить доступ к записям хотя бы участникам основной конференции Joker 2015.
Большое спасибо организаторам и докладчикам конференции!