Все статьи
Содержание

    CUBA Platform Roadmap 2018

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

    Jmix - это open-source платфора быстрой разработки бизнес-приложений на Java