[Новосибирск, 4 апреля] JBreak: программа конференции

До конференции JBreak 2017 меньше месяца, и настало время внимательно взглянуть на программу конференции. Чтобы вам было проще понять, куда смотреть, мы подготовили для вас обзор докладов.

Всего их будет 21, 16 из них мы уже готовы описать. Давайте посмотрим, какие тематики вошли в программу в этот раз?

  • Кишочки JVM (и грядущей Java 9, кстати): модуляризация JVM, AOT и JIT-компиляция, векторизация, работа GC и Foreign Functions.
  • Фреймворки: Spark, Kafka, Spring, Hazelcast Jet, Elasticsearch.
  • Паттерны и подходы: предотвращение дедлоков, статический анализ кода и CRDT.
  • Перфоманс, конечно же. Отдельный доклад о производительности пока только один (от Алексея Шипилёва, разумеется), но почти все доклады так или иначе позволят вам улучшить производительность ваших решений.

Давайте посмотрим детально на каждый из докладов, начнем с перфоманса, а дальше пойдем по списку:


Алексей Шипилёв — Перформанс: Что В Имени Тебе Моём?

Переработанный, дополненный и расширенный кейноут с Joker 2016 об оптимизациях в больших проектах: общих принципах и соотношениях; жизненном цикле проекта и экономике оптимизаций; жизненном цикле бенчмарков; типичных ловушках, в которых оказываются перформанс-инженеры.

Больше хардкора, больше деталей, больше тайминг, еще более кривая кривая имени «Ш»!


Анатомический атлас JVM

Как и всегда, у нас есть, что послушать про кишочки (на самом деле, это самый большой раздел): все о том, как JVM работает и будет работать в ближайшем будущем под капотом, и что нужно делать, чтобы под капотом происходило именно то, что нужно вам.


Владимир Иванов — Техники векторизации кода в JVM

В этом докладе разговор пойдёт о том, как сейчас выглядят векторные расширения процессора и на какие ухищрения приходится идти JVM, чтобы не давать им простаивать: CPU dispatching, VM intrinsic’и, автоматическая векторизация байт-кода в JIT-компиляторах. Будет упомянут и специализированный векторный API (Vector API), работы над которым активно ведутся в Project Panama.


Алексей Шипилёв — Shenandoah: сборщик мусора, который смог

Shenandoah — новый сборщик мусора от Red Hat, который пытается решить проблему перемещения объектов без остановки приложения, тем самым сбивая паузы ещё больше. Этот доклад — об особенностях дизайна и реализации Shenandoah, достоинствах, которыми можно гордиться, и недостатках, с которыми приходится мириться.


Volker Simonis — Analyzing HotSpot Crashes

В этом докладе будем разбираться с тем, что можно откопать в файлах с ошибками, которые создает HotSpot crash handler, а также с тем, как эти файлы могут помочь нам с анализом и воспроизведением падения системы. Кроме того, посмотрим на инструменты, такие как HotSpot Serviceability Agent, которые позволяют заглянуть в нативные файлы ядра и извлечь из них необходимые данные, которые было бы непросто достать с помощью стандартного дебаггера.


Charles Nutter — Going Native: Foreign Functions on the JVM

Есть много Java-библиотек, привычных для большинства разработчиков. Все изменится с приходом Java Native Runtime и Project Panama. Все-таки, кроме существующих Java-библиотек, существует целый мир native-библиотек: для графики, криптографии, интеграции с ОС и многого другого. В этом докладе будут рассмотрены интересные сценарии ухода в native со сравнением возможностей и обзором инструментария для интеграции.


Никита Липский – Java 9 Модули. Почему не OSGi?

В Java 9 с неизбежностью появятся модули. Кого-то это мало волнует, кого-то пугает, кто-то искренне недоумевает: зачем, ведь у нас уже больше 15 лет есть OSGi, который решает ровно те же проблемы, что и модули?

В этом докладе Никита попробует разобраться, какие проблемы пытается решить OSGi, как он их решает и решает ли в действительности. Затем расскажет, какие проблемы, которые пытается решить OSGi, Jigsaw совсем не решает и почему, а какие проблемы решает и как. Ну и на конец доклада: какие проблемы Jigsaw при этом привносит в экосистему Java и что с этим надо будет делать.


Дмитрий Чуйко – «Преждевременная» компиляция — это нормально?

В Oracle JDK 9 появилась статическая (ahead-of-time) компиляция кода. Мы уже обсуждали, зачем это нужно, и рамки текущей реализации. Пришло время поговорить о технических деталях: Какая информация и как генерируется при работе AOT, как скомпилированный AOT код взаимодействует с Hotspot? Что можно поделать с AOT кодом внешними инструментами, и как встроиться в процесс компиляции? И, конечно, какие крутилки можно покрутить, и какая будет производительность при использовании AOT?


Иван Крылов – Жизненный цикл JIT кода

Все знают, что делает JIT. Знаете ли вы, как он эт о делает? Как компилятор принимает решения и к каким последствиям могут приводить его ошибки? Иван расскажет о механизмах сбора профилей и алгоритмов перехода между разными вариантами скомпилированного кода, а также интерфейсах для взаимодействия с JITом.

Java Developer Toolbox

Иметь инструменты – хорошо, однако уметь их правильно использовать – еще лучше. В этом блоке давайте описаны доклады, посвященные тулам, позволяющим комфортно работать с bigdata, поиском, распределенными системами и параллелизмом:


Алексей Зиновьев — Kafka льёт, а Spark разгребает!

В типичном ТЗ по real-time аналитике часто имеются пункты о том, что необходимо подсчитывать «на лету» некоторые агрегированные величины за небольшой период времени, фильтровать поток, уменьшая нагрузку на последующие стадии вычислений. Достаточно часто мы можем видеть проекты, где команды организуют своё «озерцо данных» в Amazon, просто сваливая все приходящие ивенты в Kafka. Справится ли Spark с потоками из Kafka? А если справится, то какой ценой и что ему в этом поможет? Не ждите на докладе введения в Spark, RDD, разговоров за Big Data. Один кейс — одно решение — немного теории — правим конфиги — пишем код.


Виктор Гамов — Блеск и нищета распределенных стримов

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

В нем Виктор расскажет обо всех деталях распределённой обработки, познакомит слушателей со своим другом – Ориентированным Ациклическим Графом – и покажет, как с его помощью организована обработка информации поверх API Java 8 Stream. Распределенная! Высокопроизводительная! «В памяти»!


Philipp Krenn – Full-Text Search Explained

Полнотекстовый поиск это то, чего многие ожидают от современных приложений. Вопрос в том, сложно ли его реализовать. Ответ – не так сложно, как кажется.

Из этого доклада вы узнаете, как работает полнотекстовый поиск, и в чем разница в работе с разными БД; как правильно оценивать качество и скорость поиска; как все это внедрить в свое приложение при помощи Elasticsearch.

Code Complete: JBreak edition

Программирование – это не написание кода, а, как в свое время говорил Макконелл, конструирование. У вас может быть свой стиль, однако для того, чтобы он имел право на жизнь, вам следует знать о том, как правильно решать задачи. Здесь мы собрали доклады, из которых вы сможете узнать о правильных подходах и способах решения известных проблем из области параллелизма, конкуренции и анализа кода.


Тагир Валеев — Java-инспекции в IntelliJ IDEA: что может пойти не так?

IntelliJ IDEA постоянно подчёркивает ваш код, предлагая заменить его на что-нибудь получше. Иногда результаты кажутся просто волшебными. Как IDE это делает? Как разбирается в вашем коде, как генерирует новый код на замену старого и какие тут есть подводные камни?

Мы посмотрим, из чего состоит типичная инспекция кода в IntelliJ IDEA и сколько седых волос появляется у разработчиков IDE ради того, чтобы вы могли одним нажатием улучшить свой код.


Андрей Ершов – CRDT. Разрешай конфликты лучше, чем Cassandra

Подумайте только: инфраструктура из несколько дата-центров с асинхронной репликацией и отсутствием координации, дающая доступность и корректную работу в условиях сетевой сегментации, а также молниеносный отклик на клиенте и оптимистичный UI. Почему этого еще нет у всех? Всё это может привести к конкурентным изменениям, а конкурентные изменения приводят к конфликтам, которые не решить простым conflict resolver на timestamp’ах.
Однако проблему можно решить при помощи CRDT (Conflict-free replicated datatypes). В этом докладе Андрей расскажет о различных видах CRDT, их преимуществах и недостатках, а также границах применимости CRDT.


Никита Коваль — Динамический поиск потенциальных дедлоков в многопоточных приложениях на Java

Дедлоки – одна из наиболее актуальных проблем при разработке многопоточных приложений. В рамках этого доклада будет рассмотрен инструмент Dl-Check, используемый для поиска потенциальных дедлоков. В ходе разработки подобного инструмента не обойтись без инструментации байт-кода, для реализации которого стандартом де-факто является фреймворк ASM. В первой части доклада будет представлен основной алгоритм указанного инструмента, который позволяет эффективно находить потенциальные дедлоки в процессе работы приложения. Вторая часть доклада будет посвящена инструментации байт-кода, а также полезным техникам и нетривиальным проблемам, связанным с ней.


Егор Бугаенко — Аннотации в Java — это ошибка

Любителям дичи — очередной вызов Java-сообществу от Егора Бугаенко! Как известно, аннотации появились в Java 5 и привели к серьезному упрощению многих библиотек, а также к появлению новых. Всем понравилась идея сокращения размера кода благодаря использованию аннотаций и возможность отказаться от сложных XML файлов конфигурации в Hibernate и Spring.

В свое время Егор тоже был большим поклонником аннотаций. Однако все изменилось, и на сегодняшний день он категорически против них и считает, что аннотации — большая ошибка в дизайне Java. Почему? Об этом и будет доклад.


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

В общем, интересного действительно будет много, и если вы живете в Сибири и пишете на Java — мы будем рады видеть вас на JBreak. Регистрация открыта, милости просим на сайт конференции.

Tags from the story