Обзор программы Joker 2019: парад планет, или Что нас ожидает
Любое событие, особенно если оно завершилось, можно сравнить с чем-то необычным. Например, был на митапе, и он оказался слетом ведьм для обмена премудростями, или, допустим, забежал на вечеринку — как будто попал под ливень с грозой. И вот уже в конце месяца 25-26 октября в Санкт-Петербурге пройдет Joker 2019, еще ничего не произошло, но я для себя сравниваю эту конференцию с парадом планет.
Парад планет — не такое частое астрономическое явление, чтобы можно было себе позволить его пропустить. Дальше я попытаюсь рассказать, какие планеты нас ожидают и почему нужно спешить попасть в этот мчащийся поезд. Под катом много ссылок на предыдущие доклады и поблочный обзор программы.
VM/runtime
Первой планетой, традиционно находящейся в фокусе конференции Joker, является блок докладов VM/runtime. В этом блоке традиционно много зажигательного.
Несмотря на то, что Remi работает в небольшом университете в пригороде Парижа, он изрядно успел поучаствовать в жизни Java-сообщества: является одним из отцов invokedynamic introduces в Java 7, помог создать спецификации lambdas (Java 8), modules (Java 9) и constant dynamic (Java 11). В настоящее время участвует в проектах Amber и Valhalla, по мнению некоторых экспертов именно в этих проектах сейчас происходит самое интересное в мире Java.
Заранее можно познакомиться с манерой повествования Remi из 2015 и 2017 годов соответственно:
- Design Pattern Reloaded
- Project Amber (французский, субтитры рулят)
Сергей работает в Oracle, и в августе мы опубликовали на Хабре большое интервью с ним — «Тысячи вещей, которые в Java стоило бы поправить с первой версии»
Конечно, Сергей как докладчик знаком многим уже очень длительное время. А те, кого он заинтересовал только сейчас, могут напасть на следующие доклады:
- Алексей Шипилёв и Сергей Куксенко — Оптимизация производительности Java-приложений: теория (2012)
- Сергей Куксенко и Алексей Шипилёв — Через тернии к лямбдам, часть 1, часть 2(2012)
- Сергей Куксенко — «Квантовые» эффекты производительности (2013)
- Сергей Куксенко — Stream API часть 1, часть 2(2014)
- Сергей Куксенко — Железные счётчики на страже производительности (2015)
- Сергей Куксенко — Повесть о том, как один инженер HTTP/2 Client разгонял (2017)
- Dan Heidinga, Paul Sandoz — CONSTANT_Dynamic: oxymoron or powerful new tool?
- Dan Heidinga — Migrate Early, Migrate Often! JDK Release Cadence Strategies
- Devoxx US 2017: Create high performance runtimes with Eclipse OMR
Около 15 лет Клиф работал в HotSpot JVM. Он участвовал в изначальной разработке JVM, был одним из создателей знаменитого HotSpot Server Compiler (C2), улучшил значительную часть технологического стека Azul и доказал миру, что JIT-компиляция имеет право на жизнь. Просто Клифф Клик — легенда Java-мира.
Пара выступлений Клиффа этого года:
В этом же блоке масса интересного и про другие VM (GraalVM, TornadoVM, TeaVM):
- Ionut Balosin — A race of two compilers: GraalVM JIT versus HotSpot JIT C2. Which one offers better runtime performance?
- Juan Fumero — TornadoVM: A Virtual Machine for Exploiting High-Performance Heterogeneous Hardware of Java Programs
- Алексей Андреев — TeaVM: сложности перевода из Java в JavaScript
Language
Второй планетой в параде Joker 2019, безусловно, является блок докладов Language. И тут для многих просто подарок судьбы — возможность встретиться с человеком, открывшим многим дверь в мир Java.
- Core Java (11th Edition) часть 1, часть 2
- Core Java SE 9 for the Impatient
Вы могли уже видеть выступление на Joker 2017:
Нельзя пройти и мимо парочки интервью:
- «Работаю над проектами, объединяющими книгу и интерактив»: Кей Хорстманн о книгах и не только
- How to Become a Better Java Developer
Олег является разработчиком в CloudBees, состоит в core team проекта Jenkins. Для многих будет полезно посмотреть на доклады разных лет от Олега, посвященные Jenkins:
- Встреча c Олегом Ненашевым — Groovy DSL в Jenkins и Pipeline часть 1, часть 2
- SPB Jenkins Meetup #12. Олег Ненашев, Краткий обзор Jenkins X
- Олег Ненашев — Управляем безопасностью в Jenkins
Предыдущие доклады Тагира:
- Тагир Валеев — Stream API: рекомендации лучших собаководов
- Тагир Валеев — Pattern matching и его воображаемые друзья
- Тагир Валеев — Проект Amber: вести с полей
- Тагир Валеев — Атомарный рефакторинг в IntelliJ IDEA: прогибаем IDE под себя
И буквально парочка интервью:
- «При работе над инспекциями кода встречаешь Java-паззлеры каждый день»: Тагир Валеев о работе над IntelliJ IDEA
- «Изучил что-то — пробуй это объяснить, пока не поймёшь сам»
В этом блоке нельзя пройти мимо следующих докладов:
- Simon Ritter — Keeping Up With Java: Look At All These New Features!
- Roberto Cortez — GraalVM and MicroProfile: A Polyglot Microservices Solution
- Jacek Kunicki — ScalaTest: you're asserting it wrong
Tooling
Никита Коваль ndkoval, один из членов команды Kotlin, выступит с докладом «Тестирование многопоточных алгоритмов с помощью Lincheck». Никита в своем докладе расскажет про инструмент Lincheck, который помогает в тестировании и отладке многопоточного кода, затронет API и внутреннее устройство. Учитывая, что отладка многопоточного кода — не самое легкое занятие, освоить новый инструмент будет не лишним.
Никита многократно выступал, и иногда стоит пересмотреть что-то из недавнего прошлого:
- Никита Коваль — Тестирование lock-free алгоритмов, или Поиск иголки в стоге сена (2017)
- Никита Коваль — Как найти дедлок, не попав в него (2017)
- Никита Коваль — Как устроены каналы в корутинах в Kotlin (2018)
- Никита Коваль — Аппаратная транзакционная память в Java (2018)
- Никита Коваль — На пути к быстрой многопоточной хеш-таблице (2018)
- Никита Коваль — Сказ о том, как мы алгоритм каналов в Kotlin Coroutines делали (2019)
- Sebastian Daschner — Cloud native Java EE (2017)
- Sebastian Daschner — Create effective tests or create excuses — testing the Java EE way (2018)
- Sebastian Daschner — Cloud native, service-meshed Java Enterprise with Istio (2019)
- Sebastian Daschner — 7 Principles of Productive Software Developers (2019)
А еще Sebastian Daschner ведет совершенно замечательный блог, например, в сентябре у него стартовала серия из шести постов — «Thoughts on efficient enterprise testing»
Чтобы быть в теме, достаточно посмотреть ряд предыдущих докладов Сергея:
- Сергей Егоров — TestContainers: Docker Docker Docker… и тесты (2017)
- Сергей Егоров — TestContainers — интеграционное тестирование с Docker (2017)
- Сергей Егоров — Не будь Гомером Симпсоном для своего Reactor-а! (2019)
Может быть полезным посмотреть что-то из ранних выступлений Юрия:
- Юрий Артамонов — Jlink и Custom Runtime Image — мастерская Франкенштейна (2018)
- Юрий Артамонов — Хочется странного — web UI на Java для desktop-приложений (2018)
- Юрий Артамонов — Анатомия и физиология Vaadin Flow (2019)
Spring и Reactive
Ни одна Java-конференция не может пройти мимо такого звездного явления, как Spring, особенно если его представляют Josh Long, Juergen Hoeller и Mark Heckler. Все из ранее упомянутой компании Pivotal.
Пользоваться Spring и не знать, кто такие Холлер и Лонг, наверное, странно, потому в представлении они не нуждаются. Во-первых, они проведут совместный открывающий доклад «Reactive Spring revisited», в рамках которого ожидается сессия лайв-кодинга на Spring Framework 5.2 с применением Spring Boot 2.2, особенно полезно будет посмотреть, как со стороны одного из основателей Spring Framework и, пожалуй, главного Spring Developer Advocate в мире должно выглядеть создание реактивных микросервисов нового поколения для облачных архитектур.
А во-вторых, у каждого из них есть и сольный доклад:
В докладе Юргена основное внимание уделяется основным средствам для оптимизированных архитектур приложений в современных средах развертывания с поддержкой Java, а также Kotlin в качестве основы для функций более высокого уровня в Spring Data и Spring Boot. В то же время выступление Джоша учит тестировать Spring Boot-приложения. Оба доклада предназначены для практикующих инженеров.
Что у Джоша, что у Юргена всегда есть что посмотреть и чему поучиться:
- Josh Long — Reactive Spring (2018)
- Juergen Hoeller — 15 Years of Spring: Evolving a Java Application Framework (2018)
- Juergen Hoeller — Current and Future State of Java (2018)
- Juergen Hoeller — Spring Framework 5 1 on JDK 8 & 11 (2018)
- Josh Long — Bootiful TDD (2019)
- Josh Long — Reactive Streams (2019)
А вот пара докладов Марка для разогрева:
- Mark Heckler — Full-stack Reactive Java with Project Reactor & Spring Boot 2
- Mark Heckler — Drinking from the Stream: How to Use Messaging Platforms for Scalability&Performance
В этом блоке помимо Spring есть еще три доклада по теме Reactive, и я вам расскажу только про один, но какой! Если вы были на весенней конференции JPoint 2019, то вы не могли пройти мимо выступления Евгения Борисова и Кирилла Толкачёва tolkkv. Доклад дуэта стал третьим популярности. И с тем же названием, но совершенно другим содержанием доклад — «Reactive или не reactive: вот в чем вопрос» — обрушится на аудиторию утром второго дня конференции.
Доклад «Reactive или не reactive: вот в чем вопрос» — один из тех докладов, который я ожидаю, скрестив пальцы, со словами «Хоть бы, хоть бы». А если вы не убеждены, то рекомендую взглянуть на некоторые из предыдущих докладов, например «Boot yourself, Spring is coming» (в двух частях: раз, два).
Тренинги
Чтобы два раза не вставать сразу, расскажу о двухдневном тренинге ранее упомянутого дуэта. Евгений Борисов и Кирилл Толкачёв 27 и 28 октября, сразу после конференции, проведут спаренный тренинг «Spring Boot Mastering + Spring Cloud Mastering».
Если вы хотите реально понимать:
- что именно делает Spring Boot, когда вы пишете микросервисы;
- как можно всё кастомизировать;
- как решать проблемы асинхронных запросов, чтобы у Tomcat не заканчивались потоки;
- как правильно разбивать микросервис на модули;
- писать тесты;
- строить модель без наследования, чтобы не иметь потом проблем с десериализацией;
то Spring Boot Mastering для вас.
На выходе вы серьезно увеличите своё понимание того, как писать микросервисы, а вторая часть Spring Cloud Mastering позволит вам углубиться в вопросы, связанные с микросервисной архитектурой, так как с микросервисами приходят новые возможности, но и новые проблемы, ответственность решать которые никуда не уходит. Нужно уметь грамотно обходить их, что тоже позволяет нам Spring Cloud (конечно же, не всё). Если вы хотите понимать, какие проблемы будут вас ожидать при переходе на микросервисную архитектуру, так пропагандируемую Spring Cloud, уметь бороться с ними, а также просто быть в курсе этого динамично развивающегося стека — то Spring Cloud Mastering для вас.
С другой стороны конференции, а точнее до её начала, 23-го и 24-го октября, пройдет тренинг «Эффективное профилирование Java-приложений», автором и ведущим которого является Алексей Рагозин. Алексей имеет более 10 лет опыта в области разработки высоконагруженных распределенных систем в различных индустриях, активный докладчик на российских и зарубежных конференциях в области ПО и контрибьютор в open source.
Под руководством Алексея вы получите ключевые знания и навыки для эффективного применения профайлера в своей работе. Думаю, многие понимают, что столкновение с задачей, требующий применения профайлера — не самый частый кейс. По этой причине у многих разработчиков обычно нет возможности научиться эффективно владеть этим инструментом на собственном опыте. Алексей передает свой опыт и знания в рамках тренинга и в критической ситуации это может драматически сократить время решения проблемы.
Звездопад
И вот, казалось бы, основные планеты покрыты, но среди участников могут быть настоящие нераскрытые звезды, которым есть что сказать. И у них есть для этого время и место. В первый день, 25 октября, начиная с 20:30 во время вечеринки будут проходить мини-доклады. Каждые десять минут на сцену выходит докладчик со слайдами, и это его звездный час. Если вы — один из таких, и вам есть что сказать, смело отправляйте заявку — вы ещё успеваете.
Если вы всё это время сомневались, идти ли на Joker 2019, то надеюсь, мне удалось вас убедить. Приходите и разделите отличное настроение с 2000 участниками конференции Joker, которые уже приобрели билет и предвкушают настоящий Java-хардкор. Все еще есть возможность приобрести билеты, спешите запрыгнуть в последний вагон.