По мере роста экономики приложений возникает необходимость повысить ценность бизнеса, придать ему большей гибкости и мобильности, пишет портал eWeek. Открывающиеся для этого цифровые возможности огромны, что подстегивает предприятия ускорить динамику выпуска приложений. Технология — основной инструмент реализации цифровых инициатив в масштабах всего предприятия, но ее работа немыслима без поддержки разработчиков. Бизнес ощущает возрастающую необходимость в них, нехватка программистов — свидетельство надвигающегося разрыва в навыках. По данным отчета LinkedIn Workforce за 2018 г., только в США ощущается нехватка более 200 тыс. специалистов, обладающих навыками разработки на таких языках, как C++ и Java. Рынок в меньшей степени ощущает дефицит разработчиков, владеющих одним языком программирования, и в большей — разработчиков полного стека (full-stack developers), имеющих опыт сквозной разработки приложений.
При этом Java-разработчики, без которых не обходится современная практика сквозной разработки, на самом деле ее замедляют. Минусы команд Java проявляются в плане разработки пользовательского интерфейса (UI) потребительского уровня, который обеспечивает диалоговое взаимодействие с программами, а также в создании многоканальных адаптивных приложений, API-ориентированной интеграции для микросервисов и API REST. Они также не обладают налаженной и гибкой практикой DevOps, нацеленной на автоматизацию, итерацию и быструю доставку приложений.
Устранить эти недостатки помогут платформы low-code. Согласно прогнозам Gartner, к 2024 г. с их помощью будет осуществляться две трети инициатив по разработке приложений. С целью придать гибкости своим командам Java-разработчиков к low-code обращается все больше организаций. Такие платформы уменьшают зависимость программистов от специализированных навыков, предоставляют возможности развивать ориентированные на будущее навыки с использованием современного технологического стека.
Разработчик корпоративной платформы low-code Wavemaker приводит отраслевую информацию, которая поможет разобраться в преимуществах этих платформ.
1. Разработка многофункциональных и гибких приложений с использованием современных функций пользовательского интерфейса. Создание корпоративных приложений с богатым UI и адаптивным пользовательским опытом (user experience, UX) требует времени, усилий и специальных навыков. Традиционным командам требуются высококвалифицированные технологи, владеющие HTML5, Bootstrap, Angular (открытая и свободная платформа для разработки веб-приложений, написанная на языке TypeScript, разрабатываемая командой Google и сообществом), опытом разработки UI-дизайна на стороне клиента. Low-code платформы предоставляют функции перетаскивания, адаптивные интерфейсы на основе Angular «из коробки» и современные UI-фреймворки, такие как Angular 7.
Low-code платформы применяют радикальный подход на основе открытых стандартов, автоматически генерируя код для каждого действия пользователя. Благодаря этому методу они позволяют разработчикам создавать современные приложения с минимумом дополнительно написанного кода и гарантируют наилучшее качество кода, удобство обслуживания и расширяемость корпоративных приложений.
2. Автоматизированное создание API для связи с унаследованными сервисами. Для создания API, которые помогли бы связать существующие приложения предприятия с новыми программами, требуется привлечение квалифицированных Java-разработчиков. В их задачи входят разработка новой логики баз данных и написание кода, но есть более простое решение. С помощью low-code платформы готовые API в виде самосборных микросервисов создаются за один клик, при этом разработчики могут использовать существующую логику баз данных, повторно задействовать имеющийся код Java и создавать новый Java-код в интегрированной среде разработки по своему усмотрению, например в Eclipse. API-управляемый подход к разработке и интеграции приложений позволяет создавать микросервисы и автоматически генерировать для существующих приложений API REST, что упрощает и ускоряет модернизацию устаревших систем.
3. Абстрактная сложность и расширение возможностей небольших agile-команд для разработки полного стека приложений. Помимо знания всех уровней стека приложений для комплексной разработки софта разработчикам нужно учитывать потенциальные сложности с интеграцией, настройкой и программированием для различных систем и сред, которые задействуются в сквозной разработке. Программистам нужно обладать глубокими познаниями в области пользовательских интерфейсов, знать как они взаимодействуют с источниками данных, разбираться в тонкостях настроек безопасности, уметь создавать API и интегрировать их с приложениями, понимать логику баз данных, изучить тонкости работы с микросервисами, CI/CD (непрерывная доставка и интеграция софта), мультиоблачным развертыванием и многое другое. Разработчикам требуется постоянно повышать квалификацию, потому что комплексная разработка становится очень сложной.
Low-code платформы позволяют абстрагироваться от сложностей инфраструктуры комплексной разработки, предоставляя на протяжении всего жизненного цикла разработки специализированные ускорители. Их применение позволяет девелоперам оперировать на микрофункциональном уровне (микросервисы) и управлять сквозной разработкой приложений начиная с проектирования пользовательского интерфейса, фокусируясь на написании чистого кода (избегая любого кода инфраструктуры) и заканчивая развертыванием в упрощенной форме.
4. Демократизация процесса доставки и развертывания. Современные предприятия по большей части применяют гибридные модели инфраструктуры (онпремис и мультиоблако) и распределенные архитектуры приложений, такие как микросервисы и API. Поскольку традиционные конвейеры виртуальных машин (ВМ) управляются сценариями, их повторное развертывание и перестраивание в масштабе является непростой задачей. Чтобы справиться с ней, разработчикам необходимо создавать сценарии развертывания для развертывания приложений на серверах приложений и создавать для CI/CD перехватчики (Git hooks) на стороне клиента.
Low-code платформы с поддержкой CI/CD позволяют избежать этих сложностей за счет развертывания артефактов приложений (файлы WAR) на любом сервере приложений Java. Помимо этого упрощается развертывание ВМ и контейнеров как онпремис, так и в мультиоблаке. Учитывая, что образы контейнеров автоматически генерируются путем интеграции с существующими корпоративными инструментами CI, такими как Jenkins, low-code платформы демократизируют процесс доставки за счет бесшовного развертывания в Kubernetes и автоматической контейнеризации.
5. Легкая миграция с проприетарных технологий. Переход на современные приложения — дорогостоящая процедура, которая требует интенсивного кодирования. Функции визуальной разработки, которые имеются в платформах типа low-code, позволяют упростить переход с устаревших проприетарных программ, таких как Lotus Notes, MS Access и Oracle Forms.
Выводы
По мере развития экономики приложений разработка корпоративных приложений становится все более сложной. На рынке труда растет спрос на высококвалифицированных разработчиков, что связано с нехваткой специалистов и недостатком навыков. Готовность предприятий повышать квалификацию собственных команд разработчиков значительно повысит шансы на выживание и процветание сферы разработки. Применяя правильные инструменты, такие как платформы low-code, команды Java-разработчиков смогут в большей степени сосредоточиться на инновациях и удовлетворении потребностей современного предприятия.