Как это устроено в Haulmont: команда разработки CUBA Platform

Как это устроено в Haulmont: команда разработки CUBA Platform

Продолжаем серию материалов, где рассказываем, как устроена разработка и карьерный рост программиста в Haulmont. Мы уже рассказывали про команду одной из самых востребованных в России СЭД. А сегодня вы узнаете детали профессии разработчика CUBA Platform — известного во всем мире фреймворка для быстрого создания бизнес-приложений.

Платформа CUBA: крупным планом

CUBA Platform — это высокоуровневый open source фреймворк, позволяющий в разы ускорить разработку enterprise-приложений. В его основе лежат широко известные технологии, такие как Spring, EclipseLink, React. Сегодня платформой пользуются более 20 тысяч разработчиков из более чем 170 стран мира. Нас выбрали такие крупные российские и зарубежные компании как Bosch, Ingenico Group, «Промсвязьбанк», Х5 Retail Group, Johnson & Johnson и другие.

Фреймворк обладает обширной функциональностью. Например, в него встроена подсистема контроля доступа, так что аутентификация и авторизация пользователей, а также управление ролями уже встроены «в коробку». Это позволяет программистам сосредоточиться на решении специфических бизнес-задач в той области, где они работают. Недавно мы рассказывали, как благодаря CUBA Platform штатный разработчик логистической компании в одиночку создал ERP-систему.

Сейчас команда бизнес-юнита работает над самым большим обновлением в истории фреймворка и делает шаг в сторону мейнстрим-технологий.
В ближайшем будущем CUBA Platform будет базироваться на Spring Boot и представлять собой множество небольших модулей, которые выборочно подключаются пользователем.

Команда платформы и команда Studio

Подразделение CUBA Platform насчитывает около 20 разработчиков. Большая их часть занимается развитием фреймворка и его компонентов — это Frontend team, Generic UI team, Backend team и Components team. Также они создают дополнительные компоненты с готовой функциональностью. Например, модуль управления бизнес-процессами, который позволяет проектировать и организовывать работу приложения. И, конечно, пишут код на Java и TypeScript (очень много кода).

Отдельная команда инженеров развивает плагин CUBA Studio, встроенный в популярную среду разработки IntelliJ IDEA. Специалисты этой команды отвечают как за создание визуальных инструментов для широкой аудитории, так и за специальные возможности IDE для опытных разработчиков: фоновые инспекции кода для обнаружения типовых ошибок, рефакторинги, быстрые фиксы для поддержки «intention-driven» development и т. д. Кстати, в отличие от своих коллег, разработчики CUBA Studio пишут код преимущественно на Kotlin.

У команды CUBA Platform свободный график: каждый сам выбирает, когда начинать и заканчивать работу. Единственное правило — предупреждать коллег и Team Lead об отсутствии. Некоторые сотрудники работали из дома и до пандемии, хотя мы не практиковали это повсеместно. Сейчас многие оценили преимущества удаленки, тем более компания обеспечивает сотрудников нужной техникой.

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

Инженерный вызов

Разработка CUBA Platform не укладывается в рамки привычных методологий и принципов проектирования — это, пожалуй, ее главная особенность. Наши инженеры делают не готовое приложение, а фреймворк и инструментарий для его разработки.

Константин Кривопустов,
технический директор Haulmont

Пользователи платформы CUBA — это целое сообщество разработчиков по всему миру, а не конкретный клиент. Как видите, это не похоже на создание продукта или заказных приложений.
Самое главное в нашей работе — продуманность решений, предлагаемых фреймворком, так как все что мы делаем, используется множеством разработчиков в самых разнообразных вариантах и сочетаниях. Приходится руководствоваться принципом «семь раз отмерь, один раз отрежь».

К тому же, открытая архитектура всего стека требует особого внимания к качеству разработки. Исходный код может посмотреть каждый пользователь, а значит, он должен быть хорошо структурирован, понятен для чтения и единообразен. Для удобства пользователей команде CUBA нужно мыслить коллективно и придерживаться определенных стандартов.


Другой инженерный вызов — команде платформы необходимо постоянно думать об обратной совместимости, чтобы пользователи могли безболезненно переводить свои бизнес-приложения на новые версии CUBA.

Адаптация и профессиональный рост

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

Первые две недели новый сотрудник проходит через тренировочные задачи, например, создает бизнес-приложения на основе наших технологий. Это позволяет быстрее освоиться в платформе CUBA. Тренируется он, конечно, не в одиночку — ему помогает Team Lead, который выполняет роль ментора.

После этого разработчик получает реальные задачи, которые погружают его в разные модули платформы. Как правило, первое время это bug fixing — то есть исправление ошибок, или небольшие улучшения. Постепенно, шаг за шагом инженер погружается в устройство фреймворка, учится поддерживать продукт и, конечно совершенствует свой код.

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

А еще каждый инженер CUBA Platform может развивать свои коммуникативные навыки и представлять компанию на международных IT-конференциях. В этих случаях Haulmont не только оплачивает поездку, но и дает хорошие премии за принятые доклады и статьи. До пандемии мы активно выступали в крупных конференциях и митапах. Например, SCALE в Пасадене, Oracle Code One в Сан-Франциско, а также JPoint и Joker — российские конференции. Это прекрасная возможность увидеть мир и познакомиться с людьми, чьи имена вы видели среди авторов популярных статей и книг.

Глеб Горелов,
TeamLead команды Generic UI

До прихода в Haulmont я три года учился в аспирантуре и преподавал в ПГУТИ. Но затем я поумнел и решил найти работу по специальности.

CUBA — это идеальный проект для меня, а область UI-разработки была мне интересна еще со студенческих лет: всегда старался сделать в приложениях более привлекательный и удобный интерфейс. Опыт преподавания в вузе пригодился, когда я стал проводить обучающие вебинары и тренинги по платформе. Я мог объяснить сложные вещи простыми словами, и это помогало в работе.

Сейчас я вырос до должности Team Lead в команде Generic UI. Теперь в мои задачи входит развитие этого направления, а также помощь коллегам из команды: я проверяю их код, даю задачи, требующие не только аккуратности, но и творчества.

У нас действительно большой процент R&D. Например, если нужно интегрировать новый UI-компонент, то нет никаких ТЗ и прописанных требований, мы все делаем сами — продумываем API и варианты использования, изучаем новые инструменты и возможности программирования и применяем это на практике.

В CUBA Platform большое внимание уделяют качеству и стилю кода, поэтому практически любая задача подвергается строгому code review (очень строгому). Мы создаем open source фреймворк, поэтому качество кода напрямую влияет на удобство его использования. По этой же причине у нас не принято отправлять код тестировщикам без предварительной проверки. Кому-то это может показаться слишком строгим, но мне, наоборот, нравится такой подход. Думаю, в команде CUBA Platform работают настоящие профессионалы своего дела.


Если вы хотите попасть в команду CUBA Platform и вносить вклад в развитие мировой open source экосистемы, смотрите наш раздел «Карьера».

Другие материалы из серии «Как это устроено в Haulmont» читайте в нашем блоге.

Предыдущая статья Следующая статья

Может быть интересно: