Платформа CUBA: 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’ами в код платформы, так и добавлением аддонов в маркетплейс.

    Haulmont
    Создаем современные корпоративные системы

    Similar posts

    Comments 0

    Only users with full accounts can post comments. Log in, please.