Близится новый
JPoint, и мы готовы подробно рассказать о его
программе. В этом посте мы разделили доклады по тематическим
блокам: можно и быстро понять что вообще будет, и узнать
конкретику. А во вступлении упомянем отдельные моменты:
- Пришла весна, то есть самое время поговорить о Spring. О нём
будет четыре доклада, в том числе большое двухчастное выступление
Евгения Борисова. Для него мы даже продлили JPoint на пятый день
получился специальный день Борисова :)
- Онлайн-формату подходят воркшопы. Поэтому в отдельных случаях
можно будет не просто любоваться слайдами: спикер будет выполнять
конкретные задачи на практике, объясняя всё происходящее и отвечая
на вопросы зрителей.
- Есть доклады не строго про Java, а про то, как успешно
разрабатывать на длинной дистанции (чтобы всё радовало не только на
стадии прототипа, а годы спустя): как делать проекты
поддерживаемыми, не плодить велосипеды, работать с легаси.
- Ну и никуда не девается привычное. Знакомые темы: что у Java
внутри, тулинг/фреймворки, языковые фичи, JVM-языки. Спикеры,
посвятившие теме годы жизни: от технического лида Project Loom Рона
Пресслера до главного Spring-адвоката Джоша Лонга. Возможность как
следует расспросить спикера после доклада. И уточки для отладки
методом утёнка!
Оглавление
Воркшопы
VM/Runtime
Тулинг и фреймворки
Spring
JVM-языки
Люби свою IDE
Жизнь после прототипа
Воркшопы
Парное программирование знакомо многим, но вот много
ли вы знаете людей, использующих его на постоянной основе? А вот
Андрей Солнцев и Антон Кекс действительно практикуют его постоянно
и уверены, что подобные практики из мира экстремального
программирования помогают работать эффективнее.
Они и раньше об этом говорили, а теперь попробуют показать
наглядно. В ходе воркшопа они вдвоём напишут небольшое приложение
по TDD (с помощью тестов) и в ходе этого вы лично убедитесь, что с
таким подходом разработка идёт быстрее и проще. Или не убедитесь.
Интересно будет посмотреть, какую часть аудитории получится
убедить.
Олег Докука и Сергей Целовальников на небольшом игровом примере
продемонстрируют практический опыт использования RSocket-Java и
RSocket-JS.
Кому, как не им, демонстрировать возможности RSocket: Олег лидер
этого проекта, а Сергей ведущий разработчик компании Canva, которая
одной из первых внедрила его в продакшн. Если у вас есть вопросы по
этой технологии у них точно есть ответы.
VM/Runtime
Зачем каждый раз тратить драгоценные секунды на запуск
приложения, если можно один раз запустить, сохранить чекпоинт и
открывать его уже в запущенном виде, в полной боевой готовности?
Причём открывать при необходимости на нескольких машинах сразу?
О том, как использовать Checkpoint Restore в Java, расскажет
Кристин Флад из Red Hat, которая работает над языками и рантаймами
уже более двадцати лет.
JDK Flight Recorder позволяет профилировать непрерывно и прямо в
продакшне. Но это же не может быть бесплатно, да? Важно понимать,
чем придётся пожертвовать и какие будут накладные расходы.
Разобраться в этом поможет Жан-Филипп Бемпель он принимал
непосредственное участие в реализации непрерывной профилировки в
JFR.
Какой JPoint без докладов про сборщики мусора! Тут выступление
для тех, кто уже что-то знает по теме объяснять совсем азы не
станут. Но и загружать суперхардкором с первой минуты тоже не
станут. Сначала будет подготовительная часть, где Игор Брага и
Джонатан Оммен рассмотрят два подхода к GC в виртуальной машине
OpenJ9: balanced и gencon.
А вот потом полезут глубже и рассмотрят оптимизации, которые там
применяются. Для обычного разработчика эти оптимизации могут быть
незаметными, но они способны ощутимо сказываться на
производительности поэтому стоит понимать, как они работают и в чём
выгода от них для Java-приложений.
И ещё о сборке мусора. На JPoint 2018 о Shenandoah GC рассказывал
Алексей Шипилёв (Red Hat), а теперь доклад от совсем другого
спикера Келвина Нилсена из Amazon, где тоже работают над этим
сборщиком мусора.
Подход Shenandoah позволяет сократить паузы на сборку мусора
менее чем до 10 миллисекунд, но за это приходится расплачиваться
большим размером хипа (потому что его утилизация оказывается
заметно ниже, чем у традиционных GC). А можно ли сделать так, чтобы
и волки были сыты, и овцы целы? В Amazon для этого решили добавить
поддержку поколений, и в докладе поделятся результатами.
Производительность тема, где с простым соседствует сложное. Даже
в простых с виду частях кода могут обнаруживаться сюрпризы и
подводные камни, а то, что казалось очевидным улучшением, может
оборачиваться ухудшением производительности. Всё это и будет
рассматривать в своём докладе Сергей Цыпанов, в своём
профессиональном развитии сосредоточенный как раз на задачах
производительности.
Многопоточное программирование в Java поддерживается с версии
1.0, но за 25 лет в этой части языка почти ничего не поменялось, а
вот требования выросли. Серверам требуется работать с сотнями
тысяч, и даже миллионами потоков, а стандартное решение в JVM на
тредах операционной системы не может так масштабироваться, поэтому
Project Loom это одна из самых долгожданных фич языка.
Ранее у нас уже был доклад про Loom от Алана Бейтмана (мы делали
расшифровку для Хабра), а теперь и technical lead этого
проекта Рон Пресслер рассмотрит разные решения для работы с
многопоточностью и подход, который используется в Loom.
Кирилл расскажет про опыт создания платежной системы с
использованием Akka от обучения с нуля до построения кластера и
интеграции этой платформы с более привычными и удобными в своей
нише технологиями, например, Spring Boot, Hazelcast, Kafka.
Будет полезно тем, кто хочет ознакомиться с моделью акторов и с
Akka и тем, кому интересны нюансы разработки финансовых систем с
большой пропускной способностью.
Jakarta EE 9 несет множество изменений, которые затронут большое
количество библиотек и фреймворков для Java. Чтобы понять, как эти
изменения отразятся на ваших проектах, приходите на доклад Ивана
Гримстада и Тани Обрадович.
Ивар Jakarta EE Developer Advocate, а Таня Jakarta EE Program
Manager, поэтому вы узнаете о самых важных изменениях и планах на
будущее из первых рук.
В качестве хранилища данных очень часто используется Cassandra,
и всем, кто ее использует, будет полезно знать, как она устроена
внутри, и от чего зависит её производительность на чтение.
Об этом расскажет системный архитектор и практикующий
разработчик из NetCracker Дмитрий Константинов.
В Netflix разработали DGS Framework для работы с GraphQL. Он
работает поверх graphql-java и позволяет работать с GraphQL,
используя привычные модели Spring Boot. И, что приятно, он
опенсорсный, стабильный и готов к использованию в продакшне.
Пол Баккер один из авторов DGS. Он расскажет и про GraphQL, и
про то, как работать с DGS, и про то, как это используется в
Netflix.
Для большинства разработчиков тестирование не самая веселая
вещь. Однако для сложного реального проекта наличие поддерживаемого
и эффективного набора тестов имеет решающее значение для успеха.
Доклад покажет с помощью наглядного демо, что удобные
интеграционные тесты это не вопрос использования последних
фреймворков для тестирования, а скорее правильная разработка
тестового кода.
Предыдущие доклады Себастьяна на наших конференциях были
англоязычными, но участвуя в российских мероприятиях, он так влился
в местное Java-сообщество, что теперь попробует провести доклад на
русском!
Статистика от New Relic говорит, что примерно 62% Java на
продакшне в 2021 запущено в контейнерах. Но в большинстве из этих
случаев до сих пор используют Java 8 а эта версия подходит для
контейнеризации не лучшим образом. Почему? Бен Эванс рассмотрит, в
чём проблемы с ней, что улучшилось с Java 11, и как измерить
эффективность и расходы.
Хотя в основном речь пойдёт о проблемах, актуальных именно в
случае с контейнерами, часть сказанного будет применима и к
Java-разработке в целом.
Совсем скоро придет тот день, о котором грезили Kafka-опсы и
Apache Kafka больше не будет нуждаться в ZooKeeper! С KIP-500 в
Kafka будет доступен свой встроенный механизм консенсуса (на основе
алгоритма Raft), полностью удалив зависимость от ZooKeeper. Начиная
с Apache Kafka 2.8.0. вы сможете получить доступ к новому коду и
разрабатывать свои приложения для Kafka без ZooKeeper.
В конечном счете, удаление ZooKeeper упрощает общее
проектирование инфраструктуры и рабочие процессы вокруг Кафки. В
этом докладе Виктор сделает краткий обзор того, какие ограничения
Zookeeper накладывал на архитектуру Кафки и приложений, что будет
изменено, а также текущий статус удаления Zookeeper.
Spring
Товарищ, знай! Чтоб использовать Spark,
Scala тебе не друг и не враг.
Впрочем, и Spark ты можешь не знать,
Spring-data-spark-starter лишь надо создать!
Этот доклад не про Spark и не про Big Data. Его скорее можно
отнести к серии потрошителей и построителей. Что будем строить и
параллельно потрошить сегодня? Spring Data. Она незаметно
просочилась в большинство проектов, подкупая своей простотой и
удобным стандартом, который избавляет нас от необходимости каждый
раз изучать новый синтаксис и подходы разных механизмов работы с
данными.
Хотите разобраться, как Spring Data творит свою магию? Давайте
попробуем написать свой аналог. Для чего ещё не написана Spring
Data? JPA, Mongo, Cassandra, Elastic, Neo4j и остальные популярные
движки уже имеют свой стартер для Spring Data, а вот Spark, как-то
забыли. Давайте заодно исправим эту несправедливость. Не факт, что
получится что-то полезное, но как работает Spring Data мы точно
поймём.
Когда-то давно, много JavaScript-фреймворков назад, когда
микросервисы еще были монолитами, в мире существовало много разных
инструментов для разработки Cloud Native приложений. Spring Cloud
был одним из главных в реалиях Spring и объединял в себе целый
набор полезных проектов от Netflix, команды Spring и многих других
вендоров.
Казалось бы, в наши дни, когда весь мир захвачен Kubernetes и он
уже давно стал универсальным решением любой проблемы, важность
Spring Cloud должна неизбежно сойти на нет. Но не все так просто, и
в этом докладе Алексей покажет, какие компоненты Spring Cloud могут
быть полезны в Kubernetes, чем эти два проекта друг друга
дополняют, в каких аспектах пересекаются, ну и самое главное,
постарается ответить на вопрос в чем же ценность Spring Cloud в эру
Kubernetes?
Джош Лонг расскажет про фичи Spring Framework 5.0 для
реактивного программирования: Spring WebFlux, Spring Data Kay,
Spring Security 5.0, Spring Boot 2.0, Spring Cloud Finchley и это
только часть!
Может показаться многовато для одного доклада, но мы-то знаем,
что Джош Spring Developer Advocate с 2010 года. Уж кто-кто, а он-то
знает, как рассказать всё быстро и по делу.
Мы живем во время облачных технологий и чтобы эффективнее
перейти от принципа works on my machine к works on my/dev cluster
нужен набор инструментов для автоматизация загрузки кода на
лету.
Доклад Дэвида Сайера будет про то, как и с помощью каких
инструментов Spring Boot и Kubernetes построить этот процесс
удобно.
Ускорение первой фазы доставки это тот DevOps, который нужен
разработчикам, поэтому всем, кто живет в k8s или хотя бы делает
системы из нескольких компонентов этот доклад пригодится.
Люби свою IDE
Если впервые ведёшь автомобиль без инструктора и
навигатора, не очень получается думать о самом эффективном маршруте
с учётом пробок: справиться бы с тем, что видишь вокруг прямо
сейчас. С IDE похоже: поначалу требуется освоиться с главным, но
есть ещё скрытые возможности, до которых можно дорасти позже.
Виктор Рента покажет много трюков для работы с IntelliJ IDEA,
которые помогут писать код быстрее, экспериментировать больше и
делать откат результатов неудачных экспериментов проще.
В IntelliJ IDEA есть ограниченное количество основных
рефакторингов: Rename, Move, Inline, Extract. Пользователи часто
просят добавить еще, но чаще всего это можно сделать комбинацией
уже существующих, просто это не всегда очевидно.
На JPoint 2021 вы сможете получить практические рекомендации по
рефакторингу от человека, который разрабатывает рефакторинги: о
самых важных приемах расскажет коммитер 1 в IntelliJ IDEA Community
Edition Анна Козлова.
Разработчики всё чаще выбирают языки с выразительным и кратким
синтаксисом, совсем не задумываясь на тем, как долго их код будет
компилироваться, и сможет ли IDE помочь им с рефакторингом. В
докладе Петра Громова будут интересные идеи о сложности современных
языков программирования с точки зрения разработчиков IDE.
Рекомендуем всем, кому интересны механизмы IDE, языки, парсеры,
DSL и сложные синтаксические конструкции в современных языках
программирования.
Java и JVM-языки
Не все могут объяснять так, как это делает Венкат
Субраманиам, поэтому мы любим приглашать его на конференции.
На JPoint 2021 он выступит с докладом про type inference. Хотя
тема сама по себе не новая, нюансов в ней хватает, а развитие
языков делает её лишь более актуальной (вспоминается доклад
Романа Елизарова с TechTrain, где он рассматривал, как ситуация с
типами и их выводом менялась со временем). Так что стоит лучше
понять, в чём вывод типов помогает, а в чём мешает для этого и
рекомендуем сходить на этот доклад.
Babashka интерпретатор Clojure для скриптов. Он мгновенно
запускается, делая Clojure актуальной заменой для bash. У Babashka
из коробки есть набор полезных библиотек, дающих доступ из
командной строки к большому количеству фич Clojure и JVM. Сам
интерпретатор написан на Clojure и скомпилирован с помощью GraalVM
Native Image. В докладе работу с ним наглядно покажут с помощью
демо.
Недавно вышла JDK 16, и это значит, что мы получили 8 (прописью:
ВОСЕМЬ) версий Java менее чем за четыре года. Разработчики теперь
получают фичи быстрее, чем когда-либо в истории языка.
Так что теперь попросту уследить бы за всем происходящим. Если
вы до сих пор сидите на Java 8, на что из появившегося позже стоит
обратить внимание и чем это вам будет полезно? В этом поможет
доклад Саймона Риттера, где он поговорит о некоторых нововведениях
JDK 12-15 и о том, когда их исследовать, а когда нет:
- Switch expressions (JDK 12);
- Text blocks (JDK 13);
- Records (JDK 14);
- Pattern matching for instanceof (JDK 14);
- Sealed classes and changes to Records (JDK 15).
Обзор языка Scala 3 и грядущей работы по переходу. Обсудим, в
какую сторону двигается язык, откуда черпает вдохновение, и
пройдёмся по фичам.
В Java 14 появились в превью-статусе Records, а с Java 16 они
стали стандартной фичей. Для многих это было поводом сказать что-то
вроде Lombok мёртв или не нужна больше кодогенерация JavaBeans. Так
ли это на самом деле? Что можно сделать с помощью Records, а чего
нельзя? Что насчёт рефлексии и сериализации? Разберём в этом
докладе.
Жизнь после
прототипа
Представьте ситуацию: вы приходите на работу в
компанию, где до вас уже написано многое на Java и вспомогательных
технологиях. У вас горят глаза, чешутся руки и вы хотите работать.
И тут вас кидают в море легаси, где вместо документации крошки на
клавиатуре от вашего предшественника.
Анна Абрамова на примере вымышленной системы расскажет, какими
методами можно восстановить сакральные знания.
Антон Кекс регулярно сталкивается с проектами, у которых
проблемы даже с элементарным запуском. Поэтому целый доклад на
JPoint он посвятит тому, как делать на самом деле работающие
продукты, которыми можно пользоваться и легко поддерживать как
создателю, так и его коллегам.
Если ваша точка зрения не совпадет можно будет всё обсудить с
Антоном в дискуссионной зоне. Вероятно, там будет жарко.
Вы уверены, что если добавить один маленький enum в API, то
ничего страшного не произойдет? Или наоборот уверены, что так
делать не стоит, но никто вас не слушает?
Рекомендуем вам доклад Ильи и Федора Сазоновых, пропитанный тяжелой
болью по поводу бесконечных обновлений контрактов
микросервисов.
Обычно подобные темы не выходят за пределы локального холивара в
курилке, но нельзя же вечно добавлять новые значения в enum?
Многие разработчики любят строить велосипеды, потому что свой
велосипед он же надежнее, быстрее и удобнее, чем всё остальное. А
потом все эти велосипеды складываются в один большой технический
долг, с которым нужно что-то делать.
Шелли Ламберт научит вас не писать собственные решения для всего
подряд, а правильно выбирать существующие.
Подводя итог
Надеемся, по программе ясность появилась, но напоследок
подчеркнём, что онлайн-конференция это не только слушать доклады.
Это ещё и:
Вопросы спикерам в чатах и видеосозвонах
Общение зрителей (на нашей виртуальной площадке можно подойти к
другому зрителю и увидеть его по видеосвязи)
Виртуальные стенды партнёров с различными активностями
Напоминаем, поучаствовать во всём этом можно будет с 13
по 17 апреля в онлайне. Вся дополнительная информация и
билеты
на сайте.