JPoint всегда славился хардкорными докладами. Которые, так уж получилось, в основном состоят из рекомендаций по написанию сборщиков мусора, компиляторов, и прочей жести, которую далеко не каждый может применить в повседневной жизни.
Но дело в том, что многим перформанс не интересен. Существует ещё множество проблем, которые куда важней, чем ускорение приложения на 1%. Поэтому больше половины докладов на этой конференции представляют собой вполне разумный материал, который каждый может попробовать использовать у себя.
Обзор программы докладов по перформансу делался в отдельном посте, — поэтому в этой статье мы не выбрасываем их вообще, но описания будут максимально краткими.
За более подробной информацией — добро пожаловать под кат.
Disclamer. Статья написана по впечатлeниям от содержимого программы на официальном сайте. Всё ниженаписанное — мои собственные мысли, а не цитаты из докладов. В тексте могут быть (и точно есть) неверные предположения и неточности.
День 1
10:30
Spring Framework 5.0 on JDK 8 & 9
Конференция открывается кейноутом, в котором Juergen Hoeller расскажет о новой, актуальной в этом году проблеме — запуске Spring Framework на JDK 9 и выше. В общем, этот доклад не просто про Spring, а про совместимость низкоуровневых фреймворков с JDK 9, который основан на практическом опыте разработки Spring.
Juergen — это создатель Spring и в данный момент — главный человек в нём (стал им после ухода Rod Johnson), ведущий разработчик и релиз-менеджер Spring Core с 2003 года. Кроме того, он архитектор в Pivotal — компании, известной по Cloud Foundry, Greenplum Database, дистрибутиву Hadoop под названием Pivotal HD и версии Greenplum для него под названием Hawq, и так далее. Такой набор уникальных факторов делает его доклады одними из лучших в мире Spring.
12:00
Боремся с "Russian Hackers" с помощью Kafka Streams и Firehose API
Вот все говорят — русские хакеры. А был ли мальчик? В этом докладе мы попытаемся найти следы Cozy Bear, Fancy Bear и прочих медведей, анализируя поведенческие паттерны на платформе Bintray с помощью Apache Kafka и Firehose API. На реальном примере будет показано, как с помощью Kafka KSQL обрабатывать большие объемы поточных данных, которые в реальном времени отдает любой Firehose API, и как находить в нем зловредные (и не только) закономерности.
Никаких предварительных знаний о Kafka Streams, KSQL, Firehose APIs, Bintray или о Russian hackers не требуется!
Первый докладчик, Виктор Гамов (gamussa) — Solution Architect в компании Confluent, которая разрабатывает платформу на базе Apache Kafka. По сути, Виктор даёт информацию "из первых рук", только от него на русском языке можно услышать новейший эксклюзивный материал про внутренние механизмы работы Kafka и связанной экосистемы. Как лидер подкаста «Разбор Полётов», у него есть огромный опыт в объяснении сложных вещей легко, доходчиво и весело. Чуть позже я постараюсь записать и выложить на Хабр новое интервью с ним.
Второй докладчик, Барух Садогурский (jbaruch) — Developer Advocate в компании JFrog и (по его словам) делает в жизни ровно 3 вещи: зависает с разработчиками Bintray и Artifactory, пописывает для них код и рассказывает о впечатлениях в блогах и на конференциях, таких как JavaOne, Devoxx, OSCON, конечно же JPoint и Joker. На самом деле, Барух — один из самых популярных наших докладчиков, всё что он делает — попадает напрямую в топ.
Как загубить производительность с помощью неэффективного кода: Enterprise Edition
Доклад про то, как люди просаживают производительность своих программ, и что с этим делать. Несмотря на значок "смузи", этот доклад — про перфоманс, просто докладчик (перфоманс-инженер из Luxoft) его внятно объясняет.
The Eclipse OpenJ9 JVM: a deep dive!
Хардкорный доклад Tobi Ajila о внутренностях OpenJ9 (бывшего IBM J9) и его применимости к разработке облачных приложений от одного из разработчиков J9 и участников проектов Valhalla и Panama.
Дмитрий Жемеров — Идиоматический Kotlin
Начать писать на Kotlin несложно, ведь он похож на Java. В этом докладе рассказывается о возможностях языка и стандартной библиотеки Kotlin, которые позволят выйти на следующий уровень и начать писать по-настоящему компактный и выразительный код. Сочетание этих возможностей позволяет строить на базе Kotlin такие DSL, которые позволят декларативно выражать сложные наборы инструкций. Будут показаны примеры таких языков и то, как можно делать их самим.
Докладчик — Дмитрий Жемеров (yole) из JetBrains, один из создателей Kotlin, руководящий группой, отвечающей за инструменты разработки на нём (плагины к IDE и системы сборки). Кроме того, Дмитрий — один из соавторов книги «Kotlin in Action» («Kotlin в действии»).
13:45
Spring Boot и Xtend: сеанс чёрной магии c разоблачением
Андрей Когунь — эксперт по заказной разработке информационных систем с огромным стажем, работает в российской компании КРОК (известной по информатизации судов Москвы, устойчивой передаче данных в Аэроэкспрессе, работе с банками, заводами, и так далее).
Бытует мнение, что Spring Boot полон странной магии, но, если вы уже успели во всем подробно разобраться, не расстраивайтесь — много интересного и неожиданного можно добавить, если код приложения писать не на Java, а воспользоваться ее «улучшенной» версией.
Язык Xtend примерно так и позиционируется на официальном сайте. Со всем этим хайпом вокруг Котлина мы могли о нём забыть, но нет. Улучшения, прежде всего, позволяют писать меньше кода руками, а значит — делать это быстрее и с меньшим количеством ошибок.
В рамках доклада Андрей проведёт нас по разработке простого приложения на известных технологиях, таких как Spring Boot и Spring Data (Rest), с применением возможностей, которые предоставляет Xtend, в частности Active Annotations. Магии будет предостаточно, но, как мы увидим, всё можно держать под контролем, если выбрать правильный инструмент. Будут разоблачены основные фичи Xtend, базовый набор Active Annotations, как они работают, как и для чего можно написать свой процессор активных аннотаций и как его протестировать.
Developing Apache Camel and Java microservices on Kubernetes
Разработка на Java приводит к конкретной профдеформации. Зачастую люди так привыкают ко всяческим жирным application servers, что потом запуск даже простейшего приложения в докере вызывает когнитивный диссонанс, боль и отторжение. И тут нам спешит на помощью Claus Ibsen из RedHat, один из главных разработчиков небезызвестного Apache Camel.
Рандомный бесполезный факт: я сейчас слил репозиторий Camel из гита:
git clone https://github.com/apache/camel
find . -type f | sed -e 's/.*\.//' | sort | uniq -c | sort -n | grep -Ei '(java|class)$'
18077 java
А в вашем проекте есть 18 тысяч классов?
Ну так вот, Клаус расскажет как поднять с нуля Java-приложение, предназначенное для использования в облаке, и потом запустить под Kubernetes. Половина доклада — живая демонстрация. Вы же помните, что все участники конференции довольно скоро получают видео, и демки можно будет пересмотреть и повторить у себя?
Hardware Transactional Memory
Хардкорный доклад Никиты Коваля (ndkoval) про оптимизации с помощью аппаратной транзакционной памяти в новых процессорах.
Докладчик — инженер-исследователь в области многопоточности, верификации и анализа программ. Фанатично верит в будущее транзакционной памяти и заразил этим ПК.
Тонкости машобуча вместе со Spark ML
Будет очень практичный доклад на тему, что нужно уметь и понимать джависту на типичном BigData + ML проекте:
- Как выбирать фичи;
- Как перекодировать фичи;
- Как скалировать;
- Как очищать и заполнять пропуски;
- Как оценивать качество кластеризации и бинарной классификации;
- Что делать, если классификация внезапно небинарная;
- Уметь делать кросс-валидацию.
И всё это на Java + Spark! Еще, будет рассказ о подводных камнях использования MLlib, особенностях реализации некоторых популярных алгоритмов, обсуждение open source-конкурентов и интеграции в существующие приложения.
Алексей Зиновьев (zaleslaw) — практикующий тренер в компании EPAM Systems, хорошо разбирающийся в больших данных — особенно в текстовых данных и больших графах. Рассказывает хороший доклад на популярную тему.
15:30
Анализ программ: как понять, что ты хороший программист
После шока, вызванного теоремой Райса, мир стремится обрести почву под ногами и отчаянно придумывает способы пролить хоть небольшой свет на то, что происходит внутри программ. Data race detectors, model-checking, другие методы динамического анализа появляются один за другим. В это время статические чекеры,
javac
-плагины и другие тулы статического анализа тоже начинают поднимать голову. За горизонтом маячит мираж автоматической верификации. Наш герой пытается сделать поверхностный обзор этих штуковин, старается попробовать их в своей практике и в конце концов приходит к… [чтобы понять это, необходимо прийти на доклад!] Докладчик — Алексей Кудрявцев уже 10 лет занимается программированием IntelliJ IDEA в JetBrains.Extreme scaling with Alibaba JDK
Хардкорный доклад про внутренности собственного JDK, которого делают в недрах Alibaba: про сборщики мусора, лёгкую многопоточность на корутинах, эффективный мониторинг, и весь связанный с этим ужас, который мы так любим (или нет?). Докладчик — Sanhong Li из Alibaba, ведущий разработчик их JDK.
Погружение в Интернет Вещей с Java 9
Медленно, но верно, Интернет Вещей проникает в жизнь каждого. Java уверенно удерживает позиции не только в качестве технологии бэкенда, но и как платформа для гейтвея. Java 9 в дополнение к модульности принесла целый букет функциональности, бесценной для разработки IoT-решений. В этом докладе обсуждается инструментарий, позволяющий строить компактные приложений для сбора и пре-процессинга потоковых данных на устройствах.
Александр Белокрылов (alexbel) в компании Oracle руководил раньше развитием продукта Java ME Embedded, а позднее одного из компонентов Oracle IoT Cloud Service. В 2017 году вместе с единомышленниками основал компанию BellSoft, которая выпускает бинарный дистрибутив OpenJDK для процессоров ARM: Liberica, разрабатывает решения в области анализа больших данных и IoT.
Building scalable, back pressured services with Akka
Какая же Java-конференция теперь обойдётся без Akka? Асинхронщина и back pressure продолжают тревожить умы людей ничуть не меньше, чем в прошлом году, поэтому мы получим доклад по следующим темам:
- Прибивать к риквесту или писать асинхронищу;
- Что такое back pressure и как его делать, вплоть до сетевого уровня;
- Как сделать это конкретно на Akka HTTP и Akka Streams;
- Как всё это соотносится с уже существующими фичами типа CompletableFuture и Observable.
Рандомный бесполезный факт: вы уже заметили, что
Observable
помечен как @Deprecated
, начиная с Девятки?
Докладчик — Christopher Batey, Senior Engineer в Lightbend. Lightbend раньше назывался Typesafe, и был основан Мартином Одерски, создателем Scala. Сейчас Lightbend делает саму Scala, Akka, Play Framework, и другие вещи в этой экосистеме. Кристофер там занимается разработкой Akka.
17:00
Refactoring your code to Java 9 modules
Насущный прикладной доклад о том, что предстоит в ближайшее время преодолеть каждому, переходящему на свежие версии Java. Рассказывается о том, как пилить монолит, какие инструменты и паттерны при этом применять. Rabea Gransberger, большую часть времени пишет приложения на Eclipse RCP, и должна знать о подобных рефакторингах непонаслышке, если вы понимаете, о чём я.
Rabea — не только инженер в MEKOS, но и международный опытный докладчик, участник Программного комитета Java One, настоящая звезда.
ReadyNow — an "AOT" with profiling for Java
Хардкорный доклад Дугласа Хокинса про Ahead-of-time компиляцию в Azul Zing от главного разработчика этой функциональности.
Kotlin DSL: Теория и Практика
Написание тестов — не самое приятное занятие. Это долгий процесс, требующий большой концентрации и внимания… Однако, писать тесты всё равно надо. Как известно, с помощью Kotlin можно легко набросать DSL. В докладе рассказывается, как Kotlin DSL заменил билдеры и статические методы, что превратило добавление новых тестов и поддержку старых из рутины в увлекательный процесс.
В докладе разбираются основные инструменты из арсенала разработчика и то, как их можно комбинировать для решения задач тестирования. Докладчик проведёт нас по пути от проектирования Идеального Теста до запуска максимально приближенного к реальности, чистого и понятного кода на Kotlin.
Докладчик — Иван Осипов (из подразделения аутсорсинговых проектов Haulmont). Доклад будет полезен практикующим инженерам — и тем, кто рассматривает Kotlin как язык для комфортного написания компактных тестов, и тем, кто хочет улучшить процесс тестирования в своем проекте.
Хочется странного — web UI на Java в desktop приложении
В описании доклада сказано: "Как показывает опыт ребят из GitHub и Slack, можно и нужно делать классные desktop-приложения на веб-стеке. Но есть одно но — вам нужно писать всё-всё-всё на JavaScript. Стоит ли напоминать, что далеко не все разработчики любят JavaScript? Возвращаясь к Java, мы попробуем подружить её с этими новыми безумными веб-технологиями для настольных систем и посмотрим, для каких задач применим такой подход".
Мне кажется, желание иметь современный десктопный Java UI на веб-технологиях — это не "странно", это мега актуально. Например, те кто использует десктопный GNU/Linux знают, как ужасно там всё выглядит (даже если поставить свежий KDE и Gnome с распоследними темами). Конечно, не у всех есть GNU/Linux, но давайте поделюсь болью. Писать нормальный UI под GNU/Linux очень сложно, Qt и тем более Gtk — это вещи не для всех, даже если забыть необходимость разбираться в C++ и Си. Писать его так, чтобы полученное запустилось на Windows и MacOS — ещё больней и сложней. В результате, существует, огромное количество наколенных поделок с плохо написанным UI, которые как бы и запускаются, но пользоваться ими душа не лежит. Появление Electron дало призрачную надежду улучшить ситуацию, но гораздо лучше было бы писать всё на Java — как минимум, такие приложения смогут не тормозить так ужасно (привет, Atom!). С нетерпением жду этого доклада.
Дколадчик — Юрий Артамонов, занимается архитектурой и фронтендом опенсорснго фреймворка CUBA Platform. У этого фреймворка есть своя IDE, которая оформлена в виде исполнимого файла под Windows/Linux/macOS, но весь интерфейс сделан на веб-технологиях. Это настолько необычно относительно того, что обычно рассказывают на Java-конференциях, что просто должно было попасть в программу.
18:30
Большие данные в современной биологии
День завершается эпическим кейноутом Михаила Гельфанда из «Высшей Школы Экономики». У Михаила огромный список регалий, например, он доктор биологических наук, член Academia Europaea, заместитель директора Института проблем передачи информации им. А.А.Харкевича РАН, и так далее, и тому подобное.
Чем же посвящён кейноут? С развитием высокопроизводительных экспериментальных методов молекулярная биология вступила на путь, по которому уже давно идут астрофизика и физика высоких энергий: она стала наукой, богатой данными. Вместо изучения отдельных генов и белков, теперь можно пытаться исследовать работу клетки в целом.
Однако за все надо платить: с одной стороны, в данных много шума, с другой, вместо конкретных биологических фактов объектом исследования становятся искусственные конструкты и модели; уровень абстракции зачастую превышает привычный и комфортный для биологов.
В этом кейноуте, на конкретных исследований последних лет будут обсуждаться проблемы и перспективы формирующейся новой науки — системной биологии и, в частности, то, как в ней могут использоваться современные методы анализа данных. При этом изложение будет элементарным со всех точек зрения и не требует каких-либо предварительных знаний.
День 2
10:45
Boot yourself, Spring is coming
Это огромный доклад в двух частях, занимающих два слота по часу длиной, разделённых перерывом (не обеденным, так что на перерыве контекст не успеет выветриться из головы).
Много лет назад, Java-программисты пользовались «new» для создания сервисов. Они проделывали огромное количество ручных действий и смешивали конфигурацию с бизнес-логикой. Они даже использовали копипасту. Было написано много строк убогого кода, который временами даже работал.
Потом появился Spring. С ним многое изменилось… Мы получили много «магии» из волшебного цилиндра Spring, код стал более чистым, простым и поддерживаемым.
И вот появился Spring Boot. С одной стороны, он решает тысячи ранее существовавших проблем: конфликты версий, задачи конфигурации, работа с инфраструктурными бинами, проблему настройки окружения, и, конечно же, запуск или деплой приложения, включая сборку jar/war-архивов… С другой стороны, Spring Boot добавил в наш волшебный цилиндр еще больше магии. В результате имеют место быть два сценария:
- Всё прекрасно работает, хотя никто не знает, как.
- Ничего не работает, и никто не знает, почему.
Этот доклад раскроет основные секреты магии Spring Boot. Вы осознаете основные принципы и конвенции, по которым работают типичные Spring Boot-приложения. Наша задача, чтобы вся магия из цилиндра превратилась для вас в куда более прозрачный процесс и вы смогли не только получать удовольствие, когда всё работает, но и понимали суть возникающих проблем и могли решить их без привлечения скорой помощи и других служб, доступных по срочным вызовам.
Доклад ведут два признанных эксперта по Spring — Евгений Борисов (EvgenyBorisov) и Кирилл Толкачёв (tolkkv). Евгений, пройдя путь от простого программиста до архитектора и устав от рутины, ушел в свободные художники, его доклады широко известны (если кто-то ещё не смотрел "Spring-потрошителя", то вот вам часть 1, часть 2). Кирилл разрабатывает различные банковские API в Альфа-Банке, формирует принципы и наборы инструментов для работы с микросервисной архитектурой, и кстати — постоянный резидент подкаста «Разбор Полётов».
Рандомный бесполезный факт. Даже когда Кирилл просто приезжает на конференцию, не как спикер, он продолжает отвечать на вопросы. Каждый раз, когда мы берём интервью у Альфа-Банка, самый простой способ найти ответ на самые сложные вопросы — найти в толпе Кирилла и попросить рассказать о чём угодно. В частности, он спокойно топит не только за Spring, но например, за DevOps, Groovy и Gradle.
«Умный» релиз мультимодульного проекта в один клик
Вы занимаетесь выпуском релизов многомодульных проектов в вашей команде? Делаете по несколько релизов в неделю, а порой и в день? Являетесь поставщиком артефактов для других команд? О, тогда этот доклад для вас! Будут рассмотены задачи, возникающие в процессе выпуска релиза проекта, обозначены возможные проблемы, а также представлен готовый разработанный инструмент для автоматизации данного процесса.
Владислав Гончаров — ведущий IT-инженер в компании Сбербанк-Технологи, занимается разработкой Платформы Поддержки Развития Бизнеса (ППРБ), про которую у нас уже были доклады.
Один раз в год сады цветут: разбор семантики «exactly-once» Apache Kafka
Почти на любом докладе по Кафке так или иначе возникают вопросы про "exactly once"-семантику. Если вы ещё вдруг не знаете, что это такое, то добро пожаловать в наш мир! Интересный факт: понимание того, почему exactly once так важно, помогает легко отличить джуна от синьора. Кроме того, в доклде будет рассказано про влияние этого вопроса на соседние фреймворки — Kafka Streams и Kafka Connect.
У Виктора два доклада на этой конференции. Выше о нём уже написано, но на случай, если вы пропустили — повторю. Виктор является Solution Architect в компании Confluent, которая разрабатывает платформу на базе Apache Kafka. По сути, Виктор даёт информацию "из первых рук", только от него на русском языке можно услышать новейший эксклюзивный материал про внутренние механизмы работы Kafka и связанной экосистемы. Как лидер подкаста «Разбор Полётов», у него есть огромный опыт в объяснении сложных вещей легко, доходчиво и весело. Чуть позже я постараюсь записать и выложить на Хабр новое интервью с ним.
Deep dive into the Eclipse OpenJ9 GC technologies
Хардкорный, доклад Charlie Gracie о сборщиках мусора внутри виртуальной машины Eclipse J9 (бывашая IBM J9). Эксклюзивный для России — раньше такого не было. Докладчик — архитектор этого продукта. Доклад, наиболее близкий к творчеству Алексея Шипилёва, в отсутствии самого Алексея (да простит он мне такую формулировку). Кроме того, подобные доклады продвигают разнообразие в мире виртуальных машин: на одной конференции собираются все звёзды VM-ного мира, и рассказывают свои истории.
12:15
От монолита к микросервисам
Хайп по распиливанию монолитов не утихает. Только что у нас было два доклада по модулям, и вот ещё один — но уже про микросервисы. Николай Арчаков — старший архитектор в Сбертехе. Он расскажет о нелёгком пути, пройденном разработчиками «Кредитной фабрики» Сбербанка от монолитной архитектуры к микросервисной. "Кредитная фабрика" — это система сквозного процесса обработки и принятия решений по кредитным заявкам, тот самый "энтерпрайз"" из палаты мер и весов, однако же они как-то справились.
Linux container performance tools for JVM applications
Хардкорный доклад о профилировании контейнеризированных приложений с использованием perf, async-profiler, BCC, и т.п. Докладчик — CTO компании Sela Group, Microsoft MVP и региональный директор, автор в Pluralsight и O'Reilly, консультант, тренер, и так далее, и тому подобное. Рассказывает лютый хардкор.
Kotlin Coroutines
Хардкорный доклад о корутинах от создателя корутин — Романа Елизарова. Доступно о подходах к асинхронному вообще и программированию, Kotlin в частности. Докладчик — Роман Елизаров (elizarov), разработчик Kotlin, спец по хайлоаду в биржах и банках.
14:00
Designing for modularity with Java modules
В первый день уже был доклад про модули, Rabea Gransberger рассказывала про рефакторинг монолитных приложений. Этот доклад — более архитектурный, рассказывающий о трейд-оффах между преимуществами и недостатками модулей, способах правильной организации архитектуры. Как делать расширяемые сервисы, как это работает с dependency injection, что делать с циклическими и опциональными зависимостями, как динамически загружать модули, и многое другое.
Докладчик — Sander Mak, работает в Luminis Technologies (компания в Нидерландах, занимающаяся облаками и девайсами), занимается разработкой масштабируемых приложений на Java и TypeScript. Написал книгу по теме доклада: "Java 9 Modularity"(O'Reilly).
Как горизонтально масштабировать приложение, написанное на Vert.x с помощью Kubernetes
Надоело отлаживать критическую секцию в сто первый раз? Хочется писать полезный код, а не решать проблему с гонками потоков? Может, стоит попробовать что-то новое? Vert.x совершенно не похож на старый добрый Spring и Java EE. В этом его сила, это таит сложности. Легко написать код, который тяжело поддерживать. С другой стороны, имея опыт, Vert.x превращается в удобный инструмент разработки. А как после этого запускать приложение на Vert.x в промышленной среде?
Про всё это расскажет Антон Ленок. Доклад будет полезен тем, кто хотел бы начать использовать Vert.x, но не знает, с какой стороны подойти. Антон — инженер в Сбербанк-Технологиях, разрабатывает серверную часть для Сбербанк Онлайн и внедряет разные приятные вещи: ELK, Docker, Kubernetes, и т.п.
Как профилировать с точностью до инструкции
Хардкорный доклад Сергея Мельникова о профилировании с использованием
perf
, Intel Processor Trace, и других низкоуровневых средств. Хардкорный — но при этом сугубо прикладной, как Райффайзен повышает точность профилировки. новое слово в профилировании — впервые рассказан способ, как запрофилировать Java-приложение с точностью до микросекунд. Докладчик — спец по low-latency джавакоду и бывший перфоманс-инженер интеловских компиляторов.На плечах гигантов: языки, у которых учился Kotlin
Андрей Бреслав (abreslav) возглавляет разработку языка Kotiln в компании JetBrains c 2010 года, занимается как дизайном языка и общим руководством проекта. Учитывая что на доклад в основном пойдут разработчики на Kotlin, вряд ли его нужно представлять. Андрей расскажет о языках, из которых были заимствованы идеи и концепции. В числе прочего, речь пойдет о Java, C#, Scala, Groovy, Python, Gosu и т.д. Будет продемонстрировано, как некоторые из этих идей были интерпретированы особым котлиновским способом. Некоторые языки наоборот, учатся на примере Котлина (Swift, Java, Hack, C#) — про это тоже будет пара слов.
15:45
A crafts man’s guide to designing a clean architecture
В 2018 году микросервисы стали чуть ли не стандартом архитектуры современных приложений. Но также понятно, что всё это поднялось на диком хайпе. Переживут ли микросервисы хайп? Чтобы пережить всё это, Marcus Biel предлагает нам делать хорошую модульную архитектуру, про которую и будет рассказывать в докладе. Опять будут модули из свежих версий Java, будет обсуждение принципов сильного и слабого связывания, паттерн hexagonal architecture, и всё такое прочее.
Докладчик — Marcus Biel, известный Java-евангелист, создатель видеотуториалов и спикер на конференциях, входящий в разные списки лидеров мнений Java-мира, несущий слово Java со своего сайта Clean Code Academy.
Статус проектов OpenJDK: прошлое, настоящее и будущее Java
Это мой доклад, информацию о докладчике можно прочитать в хабропрофиле :-) Кратко подведём итоги прошедшего года (выход Java 9 и Java 10, новая релизная политика) и обсудим основные направления развития OpenJDK: Graal/Truffle/Metropolis, Value Types, Valhalla, Panama, Amber, Loom, Shenandoah. Короче, всё то, про что я пишу посты на Хабре. Если повезёт, будут не только слайды, но и живые демки для неверующих, считающих что "они не видят смысла использовать Graal в повседневной жизни". Доклад будет полезен слушателям, желающим получить общую картину «поля боя» за свежую, современную и быстро развивающуюся Java.
Универсальные профилировщики и где они обитают
Хардкорный доклад Ивана Углянского про написание собственного профайлера для собственной JVM. Докладчик — один из разработчиков Excelsior JET.
Java EE 8 finally final! And now EE4J?
Недавно Оракл удивил всех передачей JavaEE в Eclipse Foundation. Правда, этот проект уже не смог называться JavaEE и был переименован в JakartaEE. Кстати, я (olegchir) даже поучаствовал в конкурсе на новый логотип проекта.
В этом докладе David Delabassée расскажет о новых возможностях Java EE 8 и том, как всё это относится к JakartaEE. Дэвид — известный оракловский Java-евангелист, который участвовал в разработке Java ещё во времена Sun Microsystems.
17:15
Spring Framework 5: feature highlights and hidden gems
Juergen Hoeller, ведущий разработчик Spring Core, о котором мы уже говорили, рассказывает о новых фичах Spring Framework 5. Juergen расскажет о хайповых темах функционального и реактивного программирования в Spring, и коснётся ряда других менее знаменитых, но не менее полезных фичей. Это не просто пересказ ченжлога, с скорей выборка вещей, которые нравятся самому Юргену (читай — с которыми нужно познакомиться в первую очередь). Кроме того, доклад должен дать понимание о том, какие фичи будут вводиться в ближайших релизах (на момент написания этой статьи, в мавене последняя версия была
5.0.4
, соответственно Юрген будет говорить о 5.1
).VMStructs: зачем приложению знать о внутренностях JVM
Хардкорный доклад Андрея Паньгина (apangin) о кишках JVM. Докладчик — специалист по Java-хайлоаду в Одноклассниках, ранее работавший в команде HotSpot в Oracle, автор проектов one-nio, async-profiler, а также лидер по ответам в категории #JVM на Stack Overflow.
Escaping Developer Nightmares
Вы когда-нибудь работали на легаси-проекте с тоннами исходного кода, но без единого юнит-теста? Или без continuous delivery? Напрочь отсутствовал статический анализ кода или даже просто code style? А в ответ на жалобы на всё это, вас просили не думать о золочении продукта или просто подождать, слишком много всего надо исправить до этого?
Будут разобраны типичные ошибки и изъяны, которые встречались докладчику во множестве проектов, а также объяснено, почему на эти моменты стоит обращать внимание. Цель доклада — помочь разработчикам таких проектов понять, почему это важно, а также мотивировать вводить не только такие базовые вещи, как стандарт кода, автоматические тесты (на всех уровнях), среда развёртывания, системы автоматической сборки и т.д., но и более продвинутые аспекты, которые так важны во всех проектах разработки.
Будет много жизненных примеров с поля боя.
Докладчик — Рустам Мехмандаров из Computas AS. Computer scientist, лидер JavaZone, лидер и член правления норвежской Java User Group — javaBin, один из основателей и организаторов Arctic IoT Challenge.
18:45
Приключения Сеньора Холмса и Джуниора Ватсона в мире разработки программного обеспечения
Завершающий кейноут Барух Садогурского (jbaruch) и Евгения Борисова (EvgenyBorisov). У обоих спикеров уже были доклады сегодня — Барух весте с Гамовым рассказывал про Apache Kafka и Firehose API, а Евгений вместе с Кириллом Толкачёвым делали огромный доклад про Spring.
Это будет необычный доклад. В нём будут Холмс и Ватсон. Они раскроют несколько загадок, с которыми вы сталкивались, сталкиваетесь или будете сталкиваться при каждодневной разработке. Кишок сборщиков мусора и байткода не будет, зато будут инструменты, библиотеки и фреймворки, которые озадачивают рядовых разработчиков в каждодневной рутине, приводят к простою, профукиванию дедлайнов и затяжным депрессиям. Практически, в этом докладе Шерлок и Ватсон спасают ваш лоб от фейспалмов и граблей, на которые кто-то уже наступал.
Минутка рекламы. Напоминаем, что на JPoint всё ещё возможно зарегистрироваться. Билеты можно взять на официальном сайте конференции. Чтобы оценить качество докладов, можно посмотреть архив видеозаписей на YouTube.
Источник: https://habrahabr.ru/company/jugru/blog/351776/?utm_source=habrahabr&utm_medium=rss&utm_campaign=351776
Смотри также:
Зачем нужна Java. http://fetisovvs.blogspot.com/2014/07/java.html
Первый контакт с «var» в Java 10. http://fetisovvs.blogspot.com/2018/01/var-java-10-java.html
Первый контакт с «var» в Java 10. http://fetisovvs.blogspot.com/2018/01/var-java-10-java.html
JAVA 9. Что нового? http://fetisovvs.blogspot.com/2017/10/java-9-java.html
Концепции объектно-ориентированного программирования — ООП в Java. http://fetisovvs.blogspot.com/2017/01/java-java.html
Анимации в Android по полочкам (Часть 1. Базовые анимации). http://fetisovvs.blogspot.com/2018/02/android-1-java.html
Концепции объектно-ориентированного программирования — ООП в Java. http://fetisovvs.blogspot.com/2017/01/java-java.html
Анимации в Android по полочкам (Часть 1. Базовые анимации). http://fetisovvs.blogspot.com/2018/02/android-1-java.html
Двести пятьдесят русскоязычных обучающих видео докладов и лекций о Java. http://fetisovvs.blogspot.com/2015/12/java-5-java-java.html
Абстрактные классы и методы. http://fetisovvs.blogspot.com/2017/02/java.html
Полное руководство по Java Reflection API. Рефлексия на примерах. http://fetisovvs.blogspot.com/2017/02/java-reflection-api-java.html
Микросервисы для Java программистов. Практическое введение во фреймворки и контейнеры. http://fetisovvs.blogspot.com/2017/10/java-java.html
Микросервисы для Java программистов. Практическое введение во фреймворки и контейнеры. (Часть 3). http://fetisovvs.blogspot.com/2017/10/java-3-java.html
ТОП-3 способа конвертировать массив в ArrayList. Пример на Java. http://fetisovvs.blogspot.com/2016/09/3-arraylist-java-java.html
Ввод–вывод в Java. http://fetisovvs.blogspot.com/2016/05/java-java_28.html
Enum-Всемогущий. http://fetisovvs.blogspot.com/2017/02/enum-java.html
Массивы в Java. Создание и обработка. http://fetisovvs.blogspot.com/2017/10/java-java_18.html
Arrays, Collections: Алгоритмический минимум. http://fetisovvs.blogspot.com/2017/12/arrays-collections.html
Популярные методы для работы с Java массивами. http://fetisovvs.blogspot.com/2016/09/java-java_29.html
Пример использования метода replace в Java. Как заменить символ в строке? http://fetisovvs.blogspot.com/2017/01/replace-java-java.html
Класс Scanner в Java — описание и пример использования. http://fetisovvs.blogspot.com/2017/01/scanner-java-java.html
Пример использования метода trim в Java: как удалить пробелы в начале и конце строки? http://fetisovvs.blogspot.com/2017/01/trim-java-java.html
Spark — Потрясающий веб-микрофреймворк для Java. http://fetisovvs.blogspot.com/2017/10/spark-java-java.html
Чтение и запись CSV файла с помощью SuperCSV. http://fetisovvs.blogspot.com/2017/01/csv-supercsv-java-java.html
Конструкция try/catch/finally (исключения). http://fetisovvs.blogspot.com/2017/01/trycatchfinally-java.html
1000+ часов видео по Java на русском. http://fetisovvs.blogspot.nl/2017/06/1000-java-java.html
Шпаргалка Java программиста 7.1 Типовые задачи: Оптимальный путь преобразования InputStream в строку. http://fetisovvs.blogspot.com/2016/04/java-71-inputstream-java.html
Шпаргалки Java программиста 10: Lombok. http://fetisovvs.blogspot.nl/2017/12/java-10-lombok-java.html
Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений. http://fetisovvs.blogspot.com/2017/12/java-9-java-se-java.html
Шпаргалка Java программиста 8. Библиотеки для работы с Json (Gson, Fastjson,
LoganSquare, Jackson, JsonPath и другие). http://fetisovvs.blogspot.com/2016/04/java-8-json-gson-fastjson-logansquare.html
Java 8 и паттерн Стратегия. http://fetisovvs.blogspot.com/2018/03/java-8-java.html
Абстрактные классы и методы. http://fetisovvs.blogspot.com/2017/02/java.html
Полное руководство по Java Reflection API. Рефлексия на примерах. http://fetisovvs.blogspot.com/2017/02/java-reflection-api-java.html
Микросервисы для Java программистов. Практическое введение во фреймворки и контейнеры. http://fetisovvs.blogspot.com/2017/10/java-java.html
Микросервисы для Java программистов. Практическое введение во фреймворки и контейнеры. (Часть 3). http://fetisovvs.blogspot.com/2017/10/java-3-java.html
ТОП-3 способа конвертировать массив в ArrayList. Пример на Java. http://fetisovvs.blogspot.com/2016/09/3-arraylist-java-java.html
Ввод–вывод в Java. http://fetisovvs.blogspot.com/2016/05/java-java_28.html
Enum-Всемогущий. http://fetisovvs.blogspot.com/2017/02/enum-java.html
Массивы в Java. Создание и обработка. http://fetisovvs.blogspot.com/2017/10/java-java_18.html
Arrays, Collections: Алгоритмический минимум. http://fetisovvs.blogspot.com/2017/12/arrays-collections.html
Популярные методы для работы с Java массивами. http://fetisovvs.blogspot.com/2016/09/java-java_29.html
Пример использования метода replace в Java. Как заменить символ в строке? http://fetisovvs.blogspot.com/2017/01/replace-java-java.html
Класс Scanner в Java — описание и пример использования. http://fetisovvs.blogspot.com/2017/01/scanner-java-java.html
Пример использования метода trim в Java: как удалить пробелы в начале и конце строки? http://fetisovvs.blogspot.com/2017/01/trim-java-java.html
Spark — Потрясающий веб-микрофреймворк для Java. http://fetisovvs.blogspot.com/2017/10/spark-java-java.html
Чтение и запись CSV файла с помощью SuperCSV. http://fetisovvs.blogspot.com/2017/01/csv-supercsv-java-java.html
Конструкция try/catch/finally (исключения). http://fetisovvs.blogspot.com/2017/01/trycatchfinally-java.html
1000+ часов видео по Java на русском. http://fetisovvs.blogspot.nl/2017/06/1000-java-java.html
Шпаргалка Java программиста 7.1 Типовые задачи: Оптимальный путь преобразования InputStream в строку. http://fetisovvs.blogspot.com/2016/04/java-71-inputstream-java.html
Шпаргалки Java программиста 10: Lombok. http://fetisovvs.blogspot.nl/2017/12/java-10-lombok-java.html
Шпаргалки Java программиста 9: Java SE — Шпаргалка для собеседований и повторений. http://fetisovvs.blogspot.com/2017/12/java-9-java-se-java.html
Шпаргалка Java программиста 8. Библиотеки для работы с Json (Gson, Fastjson,
LoganSquare, Jackson, JsonPath и другие). http://fetisovvs.blogspot.com/2016/04/java-8-json-gson-fastjson-logansquare.html
Java 8 и паттерн Стратегия. http://fetisovvs.blogspot.com/2018/03/java-8-java.html
Реализация ООП-наследования в классах, работающих с SQL и MS Entity Framework. http://fetisovvs.blogspot.com/2017/02/sql-ms-entity-framework.html
Как установить соединение с СУБД MySQL в IntelliJ IDEA в редакции Community. http://fetisovvs.blogspot.com/2016/04/mysql-intellij-idea-community-java.html
Как с помощью maven работать с библиотеками, которых в maven нет. http://fetisovvs.blogspot.com/2017/03/maven-maven-java.html
Проекты по созданию компиляторов из Java в JavaScript и исполняемые файлы. http://fetisovvs.blogspot.com/2018/01/java-javascript-java.html
Как установить соединение с СУБД MySQL в IntelliJ IDEA в редакции Community. http://fetisovvs.blogspot.com/2016/04/mysql-intellij-idea-community-java.html
Как с помощью maven работать с библиотеками, которых в maven нет. http://fetisovvs.blogspot.com/2017/03/maven-maven-java.html
Проекты по созданию компиляторов из Java в JavaScript и исполняемые файлы. http://fetisovvs.blogspot.com/2018/01/java-javascript-java.html
Диагностика утечек памяти в Java. http://fetisovvs.blogspot.com/2017/03/java-java_18.html
Программируем… выход из лабиринта. http://fetisovvs.blogspot.com/2015/10/java.html
Основы работы с IntelliJ IDEA. Интерфейс программы. http://fetisovvs.blogspot.com/2016/09/intellij-idea-java.html
Ускоряем время сборки и доставки java web приложения. http://fetisovvs.blogspot.com/2018/03/java-web-java.htmlПрограммируем… выход из лабиринта. http://fetisovvs.blogspot.com/2015/10/java.html
Основы работы с IntelliJ IDEA. Интерфейс программы. http://fetisovvs.blogspot.com/2016/09/intellij-idea-java.html
Комментариев нет:
Отправить комментарий