CUBA Platform Roadmap 2018

Аватар пользователя Andrey Glaschenko

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

Тизер: CUBA Studio будет встроена в IntelliJ IDEA!

Итак, поехали!

Первый квартал

Большая часть квартала уже прошла, поэтому оглянемся назад: мы выпустили Studio Standalone Edition на базе Electron, а также Release 6.8.

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

Технически, большинство аддонов будут доступны как компоненты приложения, поэтому чтобы добавить их к проекту будет достаточно скопипастить координаты Maven в Studio.

Для начала, мы соберём вместе уже выпущенные аддоны, доступные сейчас на GitHub:
  • Drag&Drop - поддержка drag & drop в универсальном пользовательском интерфейсе CUBA;
  • JavaMelody - интеграция с популярным инструментом мониторинга;
  • ZooKeeper - динамическое обнаружение серверов среднего слоя;
  • Локализации на немецкий, испанский, датский, нидерландский, португальский, китайский упрощённый и румынский языки.

Также мы знаем, что некоторые участники сообщества уже готовы опубликовать свои компоненты, так что список должен вырасти!

Второй квартал

Studio ждут следующие улучшения:
  • Поддержка мультиоконного режима в версии SE;
  • Поддержка “тонких” компонентов в Studio (например, без модулей Core или Web).
Будут опубликованы новые аддоны:
  • WebDAV - поддержка протокола WebDAV для удалённой работы с документами;
  • LDAP - продвинутая интеграция с LDAP;
  • IMAP - дополнение для чтения и отображения писем через протокол IMAP, события которого можно перехватывать в бизнес-логике приложения;
  • Rich Search - расширенный полнотекстовый поиск по элементам меню и экранам.
Polymer UI
  • Поддержка TypeScript.

Третий квартал

Главные изменения будут представлены в Бета-версиях Платформы и Studio 7.

Platform 7 Beta


Основной упор сделан на обновление стека: мы переходим на Vaadin 8 и реализуем совместимость Платформы с Java 9.

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

Другое значительное изменение - появление нового API и слоя данных для UI. Платформа CUBA подхватила тренд на событийно-управляемую архитектуру: новые легковесные контроллеры экранов с аннотированными методами для обработки событий сделают ваш код чище и удобнее для тестирования. А типизированный API для открытия экранов избавит от необходимости приведения типов.

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

Другие важные изменения:
  • коммуникация между слоями на основе websockets;
  • поддержка истории браузера;
  • упрощённое создание композитных компонентов, т.е. компонентов, основанных на других компонентах.
С точки зрения Polymer UI:
  • переход на Polymer 3;
  • улучшение поддержки подсистемы безопасности CUBA;
  • переход на vaadin-elements вместо элементов paper-* (material design как дополнительная опция)

Studio 7 Beta


Переходим к самому интересному. Начиная с версии 7, Studio будет встроена как плагин в бесплатную IntelliJ IDEA Community Edition! Вся существующая функциональность, включая WYSIWYG-редактор, будет сохранена, но теперь к ней добавится возможность полноценно работать с исходным кодом.

Мы понимаем, что это достаточно радикальный шаг, но всё же мы пришли к выводу, что он необходим. Во-первых, эти перемены радикально повысят удобство использования Studio. Разработчикам больше не придётся прыгать из Studio в IDE и обратно.

Во-вторых, средства работы с исходным кодом в IntelliJ открывают огромные возможности для автоматизации специфичных для платформы задач, включая генерацию кода. Как пример, в будущем мы сможем реализовать полную поддержку Kotlin.

Кроме того, IntelliJ IDEA сейчас является самой популярной Java IDE в мире, и на наш взгляд - самой лучшей. Тот факт, что Eclipse потерял ещё 8% доли рынка за 2017 год, только подкрепляет это убеждение.

Наконец, IntelliJ Community Edition бесплатна, а потому это изменение финансово никак не отразится на пользователях Studio. Мы надеемся, что и многим пользователям Eclipse смена IDE дастся легко и принесет даже больше плюсов, чем просто новая Studio. А тем, кто останется верен своей IDE, на выручку придёт CLI (см.далее).

За что многие разработчики любят CUBA Studio, так это за лёгкий старт. Здесь мы не будем искать компромиссов: мы собираемся создать отдельную версию IntelliJ c плагином CUBA Studio и помощником при запуске. Эту версию можно будет скачать с нашего сайта так же, как сейчас Studio.

Разработка с CLI


Как вы знаете, Платформа CUBA - это фреймворк с открытым исходным кодом, в то время как CUBA Studio - инструмент с коммерческой подпиской. Сейчас, если вы хотите создавать проекты на CUBA бесплатно, мы рекомендуем начинать разработку нового проекта в бесплатной версии CUBA Studio, а при достижении лимита в 10 сущностей переходить полностью в IDE.

И хотя на практике такой подход достаточно удобен, его нельзя назвать на 100% опенсорсным. Просто скачать фреймворк с GitHub и начать на нём новый проект - не самая тривиальная задача.

Чтобы это обойти, мы создаем опенсорсный, легковесный и независимый от IDE инструмент с CLI (command line interface). Этот инструмент позволит быстро генерировать инфраструктуру проекта, сущности, CRUD-экраны и т.п., а также создавать и встраивать ваши собственные команды.

Так мы предоставим разработчикам возможность выбора:
  • бесплатная, полностью открытая, IDE-независимая Платформа + CLI, c одной стороны;
  • удобство и скорость визуальной разработки в Studio, интегрированной в IntelliJ IDEA - с другой.

Новые аддоны


  • Dashboards - динамический фрейм для отображения пользовательских виджетов;
  • Admin Tools - набор инструментов для развёртывания, администрирования и отладки приложений CUBA;
  • Data Import - поддержка импорта данных из различных источников с возможностью настройки маппинга;
  • Public registration - компонент, позволяющий входить в приложение через аккаунты социальных сетей.

Четвертый квартал

Выходят финальные релизы Платформы и Studio 7.

В постоянно меняющемся мире фреймворков JavaScript делать ставку только на один из них было бы недальновидно. Поэтому команда web portal планирует поддержку альтернативных фронтенд-клиентов, таких как React и Angular, поверх универсального ядра, чтобы вы могли сами выбрать любой фронтенд.

Опять же, как в случае со Studio vs CLI, у разработчиков будет выбор:
  • максимально быстрый в разработке клиент на базе Vaadin для создания стандартного UI бизнес-приложений;
  • альтернативный клиент для решения любых задач UI, на базе любой технологии на ваш вкус.

Вы сможете эффективно совмещать эти два подхода в одном приложении, например, построить публичный портал на чём угодно, а затем максимально быстро добавить к нему админку на базе стандартного Vaadin UI. Именно так мы и поступили при создании магазина и личного кабинета на www.cuba-platform.com.

Новые аддоны


Здесь основное изменение - новый BPM. Если вкратце, мы хотим реализовать полную интеграцию CUBA с движком BPM, чтобы решение большинства задач вообще не требовало написания кода, либо требовало его по минимуму. Для этого необходима интеграция с моделью данных CUBA, её UI, сервисами и подсистемой безопасности, включая:
  • специфичные для CUBA стенсилы с возможностью быстрого создания своих;
  • возможность визуального создания процессных форм;
  • вызов сервисов CUBA;
  • связывание сущностей CUBA и их атрибутов с переменными процесса;
  • связывание переменных процесса с окнами CUBA и параметрами сервисов;
  • CUBA UI для логирования и управления запущенными процессами и отображения назначений на пользователей
и многое другое! Будут выпущены и другие аддоны:

  • Messengers - поддержка обмена сообщениями через популярные мессенджеры, например, WhatsApp, Viber, Slack и др.;
  • Multitenancy - дополнение, упрощающее разработку многопользовательских приложений;
  • Data drafts - восстановление введенных данных при случайном закрытии окна браузера или падении веб-сервера.

Заключение

Мы запланировали массу позитивных изменений на этот год: обновление стека, упрощение работы с фреймворком, новые инструменты для удобства разработчика - Studio и CLI, внушительное расширение функциональности платформы за счёт экосистемы аддонов.
Приглашаем участников нашего сообщества помочь нам на этом пути как pull request’ами в код платформы, так и добавлением аддонов в маркетплейс.

Читать далее

Комментарии