Главная » Хабрахабр » Spring, байткод, JDK: топ-10 докладов JBreak 2018

Spring, байткод, JDK: топ-10 докладов JBreak 2018

Раньше мы проводили в Новосибирске Java-конференцию JBreak. Хабр, привет! Тем более, что многие попавшие в эту подборку спикеры скоро приедут с новыми докладами в Москву на JPoint — можно как раз «заочно познакомиться» с ними и понять, хочется ли на московскую конференцию. В 2019-м решили её не проводить, но от этого доклады JBreak 2018 не перестают быть полезными, так что традиционно делимся подборкой лучших (по мнению зрителей).

Как обычно, доклады идут от «младшего» к «старшему» по рейтингу, но отличия между местами небольшие — так что лучше не сравнивать придирчиво места, а смотреть всё по интересующим темам!

А для тех, кому недостаточно лучших 10 докладов и нужны все-все, у нас есть отдельный плейлист. Под катом видео разбиты с оглавлением по содержимому поста, презентациями и короткими описаниями.

Class data sharing in the HotSpot VM

Спикер: Volker Simonis
Место: 10
Рейтинг: 3,96
Презентация доклада

Появилась она ещё в Java 5, но в последние годы история получила развитие, и в OpenJDK 10 возникло дополнение в виде AppCDS. Наша подборка начинается с подробного доклада о Class Data Sharing — фиче, предназначенной для улучшения скорости загрузки и уменьшения количества используемой оперативной памяти. Фолькер сначала коротко представляет CDS и AppCDS, объясняя, что это вообще и зачем нужно — а затем ныряет глубже.

По словам слушателей, это пример «образцово выполненной рабочей задачи» — Фолькер заглянул в исходники JDK, разложил по полочкам способ достижения результата и подводные камни, показал конкретные цифры по использованию RAM и скорости работы и расписал всё так, что вы поймёте, стоит ли использовать эту технологию для своих приложений.

Строим криптотрейдинг-платформу, используя Spring 5 и Reactor 3

Спикер: Олег Докука
Место: 9
Рейтинг: 4,02
Презентация доклада

Зато будет то, что нужно для лучшего понимания Spring 5 и Reactor 3: опытный докладчик, подготовленная речь и презентация, демонстрация современной технологии и практический пример (в виде той самой простой криптотрейдинг-платформы). Нет, здесь не будет механизма работы блокчейна, секретов быстрого обогащения на криптовалюте и тому подобного.

К примеру, он подробно и просто разъясняет, как построить Reactive System, используя Spring Reactive Stack, зачем это нужно бизнесу, где Reactive-подход работает лучше всего и оптимально решает сложные задачи. Подход к докладу максимально доступный: Олег задает базовые вопросы: «Что нужно?», «Зачем это нужно?», «Как это реализовать?» раскладывает по полочкам каждый ответ.

На протяжении всего доклада Олег разбирается, как Reactor 3 и реактивный Spring 5 помогают или не помогают в решении проблем, что нового они дают.

На пути к быстрой многопоточной хеш-таблице

Спикер: Никита Коваль
Место: 8
Рейтинг: 4,04
Презентация доклада

А ещё производительность зависит от многопоточности. Хеш-таблицы — популярнейшая и полезная структура данных, от производительности которой зависят многие компоненты приложения. Что в Java с хэш-таблицами, которые использовали бы все возможности современного многоядерного мира?

Неудивительно, что и доклад получился всесторонним: в нём есть и теоретические аспекты, и практические подходы. Никита Коваль (ndkoval) видит тему многопоточности и с теоретической стороны (преподавая её в ИТМО), и с практической (он причастен к корутинам в Kotlin).

Side Effect Injection, или добродетельные костыли

Спикер: Владимир Плизга
Место: 7
Рейтинг: 4,11
Презентация доклада

Или вставляли временный if, к примеру, с Thread.sleep() или логированием для отладки? У вас бывали случаи, когда случайно (или нет) отправляли на продакшн кусок кода, предназначенный для теста? Вы не одиноки: есть множество реальных примеров, когда на продакшн частенько уезжает тестовый/отладочный код, превращаясь там в бомбу замедленного действия, попутно преумножая технический долг и увеличивая пятно на карме разработчика.

Таких костылей вы еще не видели 🙂 В докладе Владимир по косточкам разбирает подход Side Effect Injection, который позволит внедрять в тестируемое приложение почти любое поведение: задержки, заглушки, логирование, обход безопасности и т.д., но при этом не пачкать репозиторий грязными хаками и даже не пересобирать само приложение.

Верификация Java-байткода: когда, как, а может отключить?

Спикер: Никита Липский
Место: 6
Рейтинг: 4,13
Презентация доклада

Но нужно очень строго следить за корректностью байткода, иначе при загрузке классов всплывет VerifyError. Чтобы реализовать те или иные трюки, которые сложно выразить на Java, разработчики используют библиотеки для порождения байткода в рантайме. И что делать в такой ситуации?

Никита разбирается, какую миссию в JVM несёт верификатор байткода, когда и как он работает, может ли повлиять на производительность вашего приложения и почему опасно его отключать. Нужно знать не только семантику байткодных инструкций, но и то, как работают верификаторы и то, какой байткод можно считать корректным.

Для понимания байткода полезно работать на уровень ниже «обычных» Java-разработчиков, а Никита Липский (pjBooms) много лет занимается «сибирской JVM» Excelsior JET, о которой мы недавно взяли у него большое интервью. Как и в пункте выше про другого Никиту (Коваля), тут спикеру очень помогает его бэкграунд.

Балансируем клиентские запросы вместе со Spring Cloud

Спикер: Александр Тарасов
Место: 5
Рейтинг: 4,14
Презентация доклада

Александр пробегается по теории Spring Cloud, а затем ныряет в разбор типового решения проблемы — и тогда вместо сатичных слайдов на экране постоянно видны то IDE с кодом, то браузер с графиками от Hystrix.
По ходу демо будет рассмотрена внутренняя реализация клиентской балансировки запросов с примерами из официальных библиотек и собственной библиотеки автора. Очень «живой» доклад в смысле лайв-демонстрации всего, о чём говорится. Вы узнаете как балансировать нагрузку, и на примере увидите, почему даже даже весьма незначительное увеличение нагрузки может привести к катастрофическим последствиям, и как этого можно избежать.

Spring Boot Starter — как и зачем?

Спикер: Максим Гореликов / Кирилл Толкачев (tolkkv)
Место: 4
Рейтинг: 4,16
Презентация доклада

Но многим нравится, особенно новичкам!
Парный доклад о том, зачем вообще в рамках типовой компании, использующей Spring Boot, могут понадобиться собственные стартеры; как скоро инквизиция приходит за новичками, если они бездумно используют готовые стартеры и насколько Spring Boot самостоятелен и что это значит для разработчиков. Spring — уже не магия (спасибо «Spring-потрошителю» и Евгению Борисову), а вот Spring Boot довольно часто клеймят магической поделкой.

Доклад рассчитан на практикующих Spring (а лучше Spring Boot) инженеров, которые уже сталкивались с различными трудностями поддержки увесистой инфраструктуры, разрабатываемой с использованием Spring.

Это кто там такой твитит про #jbreak?

Спикер: Виктор Гамов
Место: 3
Рейтинг: 4,18

Презентация доклада

Виктор прямо на конференции устроил лайв-кодинг для разбора потока твитов с конференции, используя модные технологии — Apache Kafka, Kafka Connect и KSQL. Кто знает Виктора Гамова gAmUssA (по подкасту «Разбор Полётов» или чему-то ещё), то вряд ли удивится, что вроде бы серьёзный доклад про системы конвейерной обработки данных он превратил в интерактивное шоу.

Так вот, KSQL — это почти как SQL, только для Kafka. Мы же все знаем и любим SQL, правда? KSQL позволяет создавать сложные системы обработки потоковых данных, без написания Java или Scala кода.

Смузи ML вместе со Spark MLlib

Спикер: Алексей Зиновьев
Место: 2
Рейтинг: 4,18
Презентация доклада

Для работы над BigData нужны не только data scientist’ы, тюнящие параметры моделей из пакетов на R или Python, но и Java-разработчики, способные понять построенные модели и воплотить их на Java/Scala, в том числе при помощи Spark MLlib.

После доклада BigData станет куда понятнее, захочется заниматься ей и покопаться «ручками» самостоятельно — проверено на слушателях. Алексей в максимально простых формулировках знакомит слушателей с этой самой мощной библиотекой распределенного машинного обучения, заодно обсуждая особенности использования стандартных алгоритмов машинного обучения и структур данных в Spark.

Кейноут: JDK 9, Mission Accomplished: What next for Java?

Спикер: Simon Ritter
Место: 1
Рейтинг: 4,29
Презентация доклада

Сейчас, когда с JBreak 2018 уже прошло много времени, он по названию может показаться страшно устаревшим: уже есть JDK 11, что теперь про девятый-то вспоминать? А больше всего зрителям понравился кейноут, открывавший конференцию. Но если учесть, что именно с выходом «девятки» сменился релизный цикл и новые версии стали выходить часто, то получится, что как раз на эту версию есть смысл оглядываться: она стала важным «водоразделом», последним по-настоящему масштабным обновлением.

А если от Саймона вам всё-таки хочется чего-то более актуального, это будет в апреле на JPoint: там из двух его докладов один как раз будет посвящён JDK с 10 по 12 (а другой — выведению типов).

На данный момент уже известно, что Олег Докука расскажет про RSocket, а Никита Липский поведает, как AOT-компиляция сочетается со Spring Boot-приложениями. Кого ещё из этих спикеров можно будет увидеть в апреле на JPoint? Никита Коваль тоже будет, но тема доклада ещё не объявлена.

Если вы считаете, что и вам есть что поведать — приём заявок на доклады закрывается 31 января, так что сейчас последний шанс успеть. Кроме этого, будет множество других докладов — и описания части из них уже можно прочитать на сайте. А ещё стоит торопиться с приобретением билетов: это можно будет сделать и позже, но с 1 февраля цена повысится.


Оставить комментарий

Ваш email нигде не будет показан
Обязательные для заполнения поля помечены *

*

x

Ещё Hi-Tech Интересное!

Ускоряем неускоряемое или знакомимся с SIMD

Есть класс задач, которые нельзя ускорить за счёт оптимизации алгоритмов, а ускорить надо. В этой практически тупиковой ситуации к нам на помощь приходят разработчики процессоров, которые сделали команды, позволяющие выполнять операции на большим количеством данных за одну операцию. В случае ...

Kонсенсус в Exonum: как он работает

ExonumTM — это наш открытый фреймворк для создания приватных блокчейнов. Сегодня мы расскажем, как работает его алгоритм консенсуса. Изображение: Bitfury Зачем нужны алгоритмы консенсуса Прежде чем перейти к рассказу о том, как устроен алгоритм консенсуса ExonumTM, поговорим о том, зачем ...