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