- PVSM.RU - https://www.pvsm.ru -

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

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

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

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

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

Class data sharing in the HotSpot VM

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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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

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

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

Автор: Евгений Трифонов

Источник [24]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/java/307083

Ссылки в тексте:

[1] плейлист: https://www.youtube.com/playlist?list=PLVe-2wcL84b8nMUm45aKc2J0oPV0fP38t

[2] Презентация доклада: https://simonis.github.io/JBreak2018

[3] Презентация доклада: https://downloads.ctfassets.net/oxjq45e8ilak/1jXF380FPC8i6YO0YqcSeO/ebc6dc8592debd2e44d0d72438641ba6/OlehDokuka____________________________________________-_______________________________________Spring_5____Reactor_3__3_.pdf

[4] Презентация доклада: https://assets.ctfassets.net/oxjq45e8ilak/1dKEVszM6wUk4Y0i8gIyu4/0fe023fffb921a4a4eb8d9459b6dae29/Koval_Nikita_On_the_way_to_efficient_concurrent_hash_table.pdf

[5] ndkoval: https://habr.com/ru/users/ndkoval/

[6] Презентация доклада: https://assets.ctfassets.net/oxjq45e8ilak/NQcJjl348CgYs2iKqw0wC/f59db221f97a1cd8b92335710952e505/______________________________Side_Effect_Injection_____________________________________________________1___1_.pdf

[7] Презентация доклада: https://downloads.ctfassets.net/oxjq45e8ilak/1sXPKKQQg8KQ6m0E6CYCcw/31ac2efae382709976b5ee4429121b80/______________________________-________________________Java____________________-_jbreak1__1_.pdf

[8] pjBooms: https://habr.com/ru/users/pjbooms/

[9] большое интервью: https://habr.com/ru/company/jugru/blog/437180/

[10] Презентация доклада: https://downloads.ctfassets.net/oxjq45e8ilak/5GB2Fp0DBuMa8Cgmk6qqYo/69e64e7b40b348cde63bc07bec851d3c/Tarasov.JBreak.AdvancedLoadBalancingSpringCloud__3_.pdf

[11] tolkkv: https://habr.com/ru/users/tolkkv/

[12] Презентация доклада: https://speakerdeck.com/lavcraft/spring-boot-starter-kak-i-zachiem

[13] Презентация доклада: https://downloads.ctfassets.net/oxjq45e8ilak/4475hGOK1qWM2CSU2sIyMi/73b44d0d030d7c84e7ccff6b3480a2c8/VIKTOR_GAMOV_-_Who_s_tweeting_about_KSQL_-_JBreak_-_03-04-2018.pdf

[14] gAmUssA: https://habr.com/ru/users/gamussa/

[15] Презентация доклада: https://assets.ctfassets.net/oxjq45e8ilak/5GJij9hVksSK6uo6cA6O8e/51125fd81d478360b8f906ed61b63645/JBREAK_Zinovyev.pdf

[16] Презентация доклада: https://assets.ctfassets.net/oxjq45e8ilak/2fygU88f8sgeKIIUcowGEI/9b0681a34d5d25e7327ba4beea470da8/JDK_9_Mission_Accomplished__1_.pdf

[17] один: https://jpoint.ru/talks/35kmzgw4ds3gyt849hbaeo/?utm_source=habr&utm_medium=438098

[18] другой: https://jpoint.ru/talks/7gcedvddxsm9p6k4ywwny1/?utm_source=habr&utm_medium=438098

[19] расскажет: https://jpoint.ru/talks/2xelfl2d9mgyweeeq60wiw/?utm_source=habr&utm_medium=438098

[20] сочетается: https://jpoint.ru/talks/1emn9byzaklzozk6ec56dp/?utm_source=habr&utm_medium=438098

[21] на сайте: https://jpoint.ru/talks/?utm_source=habr&utm_medium=438098

[22] приём: https://jpoint.ru/callforpapers/?utm_source=habr&utm_medium=438098

[23] приобретением билетов: https://jpoint.ru/tickets/?utm_source=habr&utm_medium=438098

[24] Источник: https://habr.com/ru/post/438098/?utm_source=habrahabr&utm_medium=rss&utm_campaign=438098