Хабрахабр

Топ-10: лучшие доклады Joker 2017

А когда в публичный доступ попадают сразу сорок Java-докладов, в чём тут может быть проблема? Недавно мы открыли для всех видеозаписи докладов Joker 2017. Когда столько всего, непонятно, на что обратить внимание в первую очередь. В том, что глаза разбегаются!

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

Но в этот раз топовые доклады шли «ноздря в ноздрю», и разница между ними порой символическая. Обычно мы в таких топах строго обозначаем места. Поэтому, хотя видеозаписи ниже расположены по возрастанию оценок к наивысшей, это деление довольно условное: важнее не то, в каком порядке они идут, а то, что все они очень понравились зрителям.

Profilers are lying hobbitses

Спикер: Nitsan Wakart
Ссылка на презентацию доклада

Что вы сказали бы, если бы приложение «Учёт расхода мобильного трафика» порой указывало вам «Вот он ест трафик!» не на тот сервис, который действительно потратил всю вашу квоту, а на ни в чём не виновный другой? Вероятно, вы возмутились бы: приложение не справляется со своей главной задачей и только вводит вас в заблуждение.

При определённых условиях многие из них могут так привирать, что если не знать об этом, их использование способно усложнить вашу жизнь вместо облегчения. С Java-профайлерами вообще-то похожая ситуация. Куда конструктивнее будет разобраться, что именно не так и как нам с этим жить. Но это не значит, что надо выкинуть их все и замерять производительность «на глазок». Об этом и рассказывает Нитсан Вакарт, известный многим по блогу «Psychosomatic, Lobotomy, Saw».

Текстовый редактор — это вам не высшая математика, тут думать надо

Спикер: Алексей Кудрявцев
Ссылка на презентацию доклада

Название у доклада, конечно, провокационное, но оно появилось не на пустом месте. То же самое с самим докладом: в нём хватает как иронии, так и «мяса». Алексей работает в JetBrains над IDE (что тоже в определённом смысле текстовый редактор) — и ему хорошо известно, каково иметь дело с текстами такой длины, какая нам всем в наших String и не снилась. И какая возникает специфика, когда по этому тексту постоянно проходятся инспекции.

Многим ли из нас придётся когда-либо работать над текстовым редактором? Тут, конечно, возникает вопрос о практической применимости. Но он может дать как минимум вот что: на ту же IDE, которую видишь каждый день, после этого смотришь немного другими глазами. Если нет, то что нам даст этот доклад?

Event sourcing, event-driven architecture and CQRS

Спикер: Sebastian Daschner

Казалось бы, в интернете нет нехватки в текстах, объясняющих понятия event sourcing и Command Query Responsibility Segregation («восстановление текущего состояния на основе исходного и произошедших событий», «разделение чтения и записи», вот это всё). Но одно и то же можно объяснять по-разному, и зрительский фидбэк показал: людям нравится, как объясняет Себастьян Дашнер.

Конечно, это неприятно. Вот приведённый в докладе пример: «Представьте, что вы заказали в кафе бургер, сидите в предвкушении, и тут официант возвращается со словами «извините, на кухне сказали, что нужного ингредиента сейчас нет». Очевидно, что такой подход вообще не сработает. Но чтобы гарантированно избежать подобного, официанту пришлось бы сразу после слов «можно заказать бургер?» бежать на кухню и не возвращаться, пока он не будет готов: «да, можно, и вот он». Поэтому сложную систему из многих элементов разумнее делать не абсолютно consistent, а eventually consistent».

А отдельную ачивку «дух старой школы» Себастьяну хочется вручить за то, что его презентация вместо Powerpoint сделана, похоже, в Vim (и схемы там старательно вырисованы ASCII-артом).

One-cloud DC/OS на Java и для Java

Спикер: Олег Анастасьев
Ссылка на презентацию доклада

Слово «облако» за последние годы уже истрепалось до невозможности. Но если во многих случаях его можно мысленно заменить на «Амазон», то тут ситуация совсем другая.

Но по мере развития стало ясно, что самый ценный инфраструктурный ресурс — это не сервер, а место в стойке, и надо повышать утилизацию дата-центра, деля ресурсы каждого сервера между разными задачами. Изначально в Одноклассниках каждый сервер отвечал только за одну задачу, что многое упрощало (например, сразу очевидно, какая задача сколько «ест»). Что получается, когда Kubernetes не подходит, зато есть силы сделать собственное решение? Как с помощью Docker правильно делить ресурсы между задачами класса «важен быстрый отклик» и класса «важна пропускная способность»?

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

Java Puzzlers NG S03 — Откуда вы все лезете-то?!

Спикеры: Тагир Валеев и Барух Садогурский
Ссылка на презентацию доклада

Паззлеры, конечно, хочется демонстрировать на конкретном примере. Поэтому перескажем вторую из задачек, озвученных Тагиром и Барухом. Предположим, что мы вложили один тернарный оператор в другой (не спрашивайте, зачем):

System.out.println(isUltimateQuestion ? 42 : isUltimateQuestion ? 42 : null);

Также предположим, что у isUltimateQuestion значение false. Вопрос: что выдаст код и почему?

Варианты:

  1. null
  2. Не скомпилируется
  3. 42
  4. NullPointerException

Правильный ответ — под спойлером.

Скрытый текст

Правильный вариант — последний, NullPointerException. Почему? Оказывается, согласно спецификации, если в тернарном операторе возможны исходы int и null, у выражения в целом будет тип Integer. А если int и Integer, то int. К чему это всё приводит: произойдёт попытка анбоксить «внутренний» тернарный оператор, и она наткнётся на null.

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

Проект Amber: вести с полей

Спикер: Тагир Валеев
Ссылка на презентацию доклада

А тут Тагир уже без Баруха. Он решил как следует разобраться, «что день грядущий нам готовит», и изучил информацию по Project Amber — подборке небольших изменений.

Скажем, начинается доклад с локального вывода переменных — а теперь мы уже его получили его в Java 10, и уже есть много материалов формата «как это есть», а не «как это будет». Сегодня главная проблема с этим докладом, конечно, в том, что за прошедшее время многое изменилось. Но доклад всё равно остаётся интересным: и потому что он помещает всё в контекст («вообще-то вывод типов как таковой появился ещё в восьмой версии»), и потому что интересно посмотреть, как всё выглядело по состоянию на конец 2017-го.

Shenandoah: сборщик мусора, который смог (часть 2)

Спикер: Алексей Шипилёв.

Этот доклад требователен к зрителю по двум причинам:

Теперь, когда оба эти доклада доступны всем, можно сразу рассматривать их как цельную «дилогию о GC». Во-первых, он требует предварительного знакомства с предыдущим докладом Алексея, сделанным на JPoint 2017 (собственно, отсюда и «часть 2» в названии).

Не самый зубодробительный из всего, что он когда-либо рассказывал, так что совсем уж бояться подходить не стоит — но, тем не менее, определённые знания от зрителя требуются. А во-вторых, это доклад Алексея Шипилёва. Потому что можно поставить видеозапись на паузу и погуглить непонятное! И тут видеоформат может стать преимуществом по сравнению с личным присутствием на докладе.

Java 8: Хороший, плохой, злой

Спикер: Николай Алименков
Ссылка на презентацию доклада

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

И доклад как раз об этом: как их использует неправильно, а как стоило бы по уму. Несомненно, «восьмёрка» дала нам много прекрасных новых возможностей — но нет такой прекрасной возможности, которую нельзя было бы испортить неправильным использованием. В пару к докладу идёт GitHub-репозиторий — если вам так удобнее, можете смотреть на конкретных примерах прямо там.

GraphQL — API по-новому

Спикер: Владимир Цукур
Ссылка на презентацию доклада

Опрос зала в самом начале доклада показывает: среди зрителей слышали про GraphQL очень многие, а вот использовали его «в бою» очень немногие. Конечно, для всего Java-сообщества это может быть нерепрезентативной выборкой (неудивительно, что такие люди стягиваются на такой доклад), но всё же есть ощущение, что эта технология сейчас в статусе «пришло время познакомиться». Доклад именно это и предлагает — бодрое и беглое знакомство.

Для фронтенда это может выглядеть как «у меня поменялись требования и нужно кое-что изменить в endpoints, а они там не чешутся», для бэкенда — «приходят тут всякие и срочно хотят чего-то, когда у нас другие задачи горят». Сейчас вопросы, связанные с API, могут становиться зоной напряжённости между фронтендом и бэком. Если бы фронтендеры могли просто сами запрашивать нужные им данные и получать ровно их, не больше и не меньше, разве не настал бы при этом рай на Земле?

Но зрители хвалили этот доклад отчасти за то, что он не обходил их стороной и не превращался в красивую рекламную картинку. На самом деле, не настал бы: у GraphQL есть и свои недостатки. Это ли не успех? И при этом в фидбэке многие указали, что теперь хотят опробовать технологию в рабочем проекте.

Boot yourself, Spring is coming

Спикеры: Евгений Борисов и Кирилл Толкачёв

Часть 1:

Часть 2:

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

И отзывы показали, что всё не зря: получился не только замах на рубль, но и соответствующий удар. Пожалуй, учитывая популярность Spring Boot в Java-экосистеме, был нужен доклад именно такого размаха.

А если вы фанат сериалов и сразу увидели в названии отсылку к «Brace Yourselves, Winter is Coming», то вы правы: Кирилл и Евгений все два часа обыгрывают «Игру престолов».

При этом билеты со временем дорожают, и ближайшее повышение цен произойдёт уже 1 июля. Если доклады из списка вас заинтересовали, обращаем ваше внимание: мы уже анонсировали следующий Joker, и там вам может быть не менее интересно. Так что не стоит откладывать с покупкой билета на новый Joker до того, как пересмотрите все доклады с предыдущего!

Теги
Показать больше

Похожие статьи

Добавить комментарий

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

Кнопка «Наверх»
Закрыть