Кандидаты часто спрашивают: какие технологии мы используем при создании своих продуктов и решений. Это важный вопрос, и ответить на него нужно заранее. Ведь технологии — это то, с чем девелопер будет работать каждый день. В этом материале расскажем, что уже сейчас выбирает команда разработки платформы, а что планирует использовать в будущем.
Jmix — это новая версия платформы Jmix (ex-CUBA Platform) для разработки современных корпоративных приложений. Она включает в себя open source фреймворк, инструменты и маркетплейс дополнений, реализующих типовые задачи enterprise.
В одном из материалов мы говорили, что разработка такой платформы не укладывается в привычные методологии и принципы проектирования. Нашим специалистам нужно все время смотреть шире: решать не одну конкретную задачу, а реализовывать концепцию продукта, видеть, как другие разработчики будут пользоваться фреймворком в дальнейшем.
Такой подход касается и выбора технологий. Мы не просто используем их для создания новой функциональности, а глубоко изучаем их, погружаемся в низкоуровневую разработку. Так что команда платформы — это не просто хорошие разработчики, а еще и технические эксперты, которые понимают, как устроен любой фреймворк или инструмент.
Что мы выбираем
После масштабного обновления в основе платформы теперь лежит Spring Boot, а не Spring. В качестве ORM-слоя мы используем EclipseLink. Это референсная реализация стандарта JPA, которая, к тому же, позволяет нам эффективно работать с базой данных.
Один из принципов команды — использовать mainstream-технологии, которые уже завоевали всеобщее признание, но в то же время остаются современными. Например, сейчас разработчики платформы проводят R&D по переходу на Hibernate— в первую очередь, из-за его популярности. Также завершаем переход с универсального REST API на GraphQL. Он набирает популярность и идеально подходит для сценария интенсивной работы с большими моделями данных.
Для нас не менее важно использовать проверенные и удобные технологии для создания UI-клиентов Jmix, ведь это не просто генерация кода. Это также и библиотека высокоуровневых компонентов, и специализированный API, и инструментальная поддержка в виде визуального дизайнера.
Долгое время в качестве основы UI-клиента мы использовали Vaadin. У него много плюсов: например, скорость разработки и простота для Java-разработчиков. В то же время это был не лучший выбор для современных нагруженных приложений. Так что сейчас мы бросили все силы на развитие React клиента.
Jmix — это не только фреймворк. Ключевой частью платформы является инструмент разработчика Jmix Studio. Как и Google с Android Studio, мы строим свою IDE на базе IntelliJ IDEA, постоянно расширяя ее возможности. А это значит, у разработчиков всегда есть много задач, связанных с анализом и генерацией кода, созданием рефакторингов, intentions, подсветкой ошибок. Для этого мы используем IntelliJ Plugin SDK, код пишется в основном на Kotlin.
Также разработчики платформы часто сталкиваются с различными технологиями в аддонах — компонентах, расширяющих функциональность фреймворка и доступных на публичном marketplace. Например, один из самых популярных аддонов BProc использует редактор бизнес-процессов Camunda и движок Flowable.
Планы на будущее
Мы уже начали экспериментировать с Flutter, UI-фреймворком на основе языка Dart, который быстро набирает популярность. Flutter уже стал технологией #1 для кроссплатформенной разработки. Миссия Flutter - предоставить единую UI-технологию для мобильных, web- и desktop-приложений из одной кодобазы. Во второй половине 2021-го года наша команда займется полноценной разработкой такого клиента. В итоге Jmix будет предлагать своим пользователям несколько альтернативных технологий для разработки UI и позволит закрыть любые потребности корпоративных приложений: от админки до мобильного клиента.
Еще одно большое направление, которое мы начинаем в 2021 году — автоматизация CI/CD процессов и поддержка нативных облачных приложений. Для этой задачи мы уже формируем отдельную «облачную» команду, а к общему ряду технологий теперь добавятся как минимум Jenkins, Kubernetes и облачные сервисы AWS.
Как видите, у нас масштабные планы на будущее, и сейчас мы ищем разработчиков, DevRel-специалистов и QA-инженеров. Если вы хотите попасть в команду разработки платформы и вносить вклад в развитие мировой open source экосистемы, смотрите наш раздел «Карьера».