Этот дайджест взаимодополняет выпуск подкаста «Разбор Полётов». На этот раз в студии были Барух Садогурский и Олег Чирухин. Получить запись подкаста можно либо пройдя по ссылке на сайт РП, либо скачав MP3-файл.
⇰ Мы выложили записи с Joker 2017 и ТОП-10 докладов с описанием от Евгения Трифонова. В топе присутствуют Барух Садогурский, Тагир Валеев, Алексей Шипилёв, Евгений Борисов и Кирилл Толкачёв (угадайте, что между ними общего)
⇰ 11 июля появилась официальная страничка подписки на поддержку Java SE от Oracle. Есть уточняющий PDF c бизнес-вопросами, которые решает подписка, и FAQ с точными ценами. В ней интересно, что есть подписка для десктопа, 2.5 бакса в месяц (которая скидывается до 1.25 бакса при подписке 20-50 тысяч человек), и серверная/клаудная подписка (которая скидывается с 25 баксов до 12.5 баксов за 10-20 тысяч процессоров). Что такое «процессор» (целиком бокс или ядро) — не уточняется.
⇰ Вышел Apache Groovy 2.5 и Groovy 3.0 Preview. За последний год в Groovy случилось более 30 новых коммитеров, и вот они-таки накоммитили. Среди интересностей есть новые и улучшенные AST-трансформации:
Добавились макросы — фича, позволяющая при создании compile-time расширений пользоваться синтаксисом Groovy, а не писать внешние костыли. Например, если хочется сделать трансформацию @Description
, генерирующую метод @getDescription
, то
Там еще огромное количество улучшений, прочитать про которые лучше в release notes.
Про улучшения в Groovy 3, возможно, будет отдельная статья на JUG.ru, или можно где-нибудь спросить Баруха Садогурского.
⇰ Английская компания Pusher провела исследование экосистемы Kotlin. Исследование показало астрономический рост популярности и использования, наиболее любимая фича — null safety. 83% пользователей Kotlin всё ещё разбираются в Java.
⇰ Вышел Kotlin/Native v0.8. Стандартная библиотека (kotlin.*
) стандартизована вместе с другими платформами. Если раньше синглтон приходилось использовать только в рамках треда, ведь его состояние не синхронизировалось между тредами, то теперь разрешено использовать shared immutable state:
А еще можно использовать atomic values и references:
⇰ Вышел Apache Ignite 2.5. Главная фича — топология вида «звезда» вокруг ZooKeeper, потому что кольцо не справляется с нагрузками. Появился тонкий Java-клиент (условно, драйвер к БД, который не является полноценным участником топологии, и поэтому не жрет ресурсы). Появилось управление пользователями через SQL и загрузка SQL-данных из файлов пачками, и многие другие фичи. Заявляется, что машинное обучение — приоритетное направление развития, поэтому в арсенал добавляются генетические алгоритмы.
⇰ Google (в лице двух инженеров по имени Appu Goundan и Qingyang Chen) анонсировали новую штуку по имени Jib. Это утилита для сборки Docker-контейнеров с Java-приложениями, которая берет на себя всю грязную работу: написать или скачать Dockerfile, запустить Docker daemon из-под рута, подождать сборки, запушить образ в реестр. Jib всё это исправляет: он написан на Java, интегрируется с Maven/Gradle, конфигурится декларативным языком и даже может использовать какую-то особую layer’ную магию для продвинутого кэширования с учётом знаний о структуре приложения. Интеграция простая:
Maven:
Gradle:
⇰ Mike Milinkovich (исполнительный директор Eclipse Foundation) был пойман и допрошен журналистами DZone на предмет перспектив Jakarta EE. Если в двух словах, Jakarta пока помирать не собирается, планирует уходить в облака, обдумывается направление микросервисов и прозрачной интеграции с Kubernetes, но пока самым значительным достижением была организация Jakarta EE Working Group.
⇰ Вышел новый GitHub Enterprise 2.14. Из интересного, добавился универсальный поиск между ним и основным github.com (необходимо одновременно иметь аккаунты GitHub Enterprise и GitHub Business Cloud). Добавился Checks API, который говорит расширенную информацию о статусе (например, отчет линтера). Можно дать анонимный доступ к гиту, даже если среда настроена в private mode, и куча других фишек. Похоже, Microsoft всё-таки не собирается убивать GitHub, скорее — наоборот.
⇰ Вышел финальный релиз Vaadin 10. Оно ещё шевелится! Vaadin состоит из двух компонентов: набора HTML web components и Java-фреймворка — Vaadin Flow. Flow продолжает традицию предыдущих версий и добавляет к ней большую модульность и Element API для манипулирования DOM с помощью серверного Java-кода. GWT с клиента выбросили, и вот как теперь выглядит Hello World:
Рефакторинг компонентов в web components означает, что теперь в HTML будет меньше каши, и их можно будет использовать даже отдельно от Vaadin (замнем для ясности, кому это может быть нужно):
Запилена няшная визуальная тема Lumo, полностью кастомизируемая через обычный CSS, не требующий транспиляции из более умных форматов, и результаты этих настроек могут подсасываться прямо на живом работающем сервере.
⇰ Если вы вдруг пользуетесь Visual Studio Code, то в него добавили Grid Layout и Outline View. К добру ли, но он всё больше походит на полноценную IDE:
⇰ Несмотря на выход свежей версии IntelliJ 2018.2, в JetBrains не забывают пользователей старых версий и выпустили очередное обновление — IntelliJ IDEA 2018.1.6. Изменения можно посмотреть в release notes, в основном там исправление багов, но есть и полезные фичи: функция «save as» для scratch-файлов и YAML plugin для DataGrip.
Spring
⇰ Вышел Spring Cloud Data Flow 1.6 M2. Внедрили PCF Scheduler. Обычная задача для процессинга данных — это планирование обработки, хороший пример — cron (принимаем на вход cron-expression и запускаем задачу, когда она совпала по времени). Поэтому они написали подсистему, которая принимает на вход эти самые cron-expression и позволяет запланировать task definition. Сделали для этого интерфейс в Spring Cloud Scheduler SPI project (Service Provider Interface), и к нему конкретную реализацию для PCF, Spring Cloud Scheduler for Cloud Foundry. PCF Scheduler в свою очередь — это шедулер долгоживущих задач и процессов (LRP) для Diego. Как это выглядит в админке, можно взглянуть на скриншоте:
⇰ Вышел Spring Batch 4.1.0.M2 — новая версия легковесного фреймворка для обработки больших объемов записей — включая логирование и трейсирование, управление транзакциями, статистику обработки джобов, управление ресурсами и так далее. Фичи этого релиза — новый JsonFileItemWriter
, поддержка Validation API в виде нового BeanValidatingItemProcessor
и упрощенное партицирование вот такого вида:
⇰ Вышел первый maintenance release по линии Elmhurst — Spring Cloud Stream Elmhurst.SR1. Починены баги в Spring Cloud Stream, Kafka binder и Rabbit binder из 2.0.1.RELEASE. Чего чинили — описано в release notes, надо обновляться. Текущий поезд едет на Fishtown. Напоминаю, Spring Cloud Stream — это фреймворк для создания сильно масштабируемых event-driven микросервисов, объединенных общими messaging systems.
.
Полнофункциональное приложение на Spring Cloud Stream выглядит как-то так:
Дайджест готовили
- Текстовая версия: Олег Чирухин (контент, верстка, проверка фактов) и редакция JUG.ru Group.
- Подкаст «Разбор Полётов» (ссылка на запись): Барух Садогурский, Олег Чирухин.