Платформа это новый этап в эволюции разработки. Беря на себя всю рутинную часть - предоставляет разработчику простор для творчества и созидания. Кратно уменьшает сроки разработки и риски проекта.
Так что же это за такой зверь невиданный и как он вообще работает? Постараюсь ответить на эти вопросы на примере нашей разработки платформы, которая разрабатывалась специально для клиент-серверных приложений.
Давайте посмотрим, что такое программная платформа.
Изначально скажу что платформа - это в первую очередь набор четких правил, по которым происходит разработка и которые необходимо неукоснительно соблюдать. Все эти правила можно организовать и при обычной разработке, но людей достаточно сложно заставить четко соблюдать ВСЕ правила. В нашем случае все правила берет на себя инструментарий платформы и программистам уже хочешь-не хочешь приходится их соблюдать :)
Основная задача нашей платформы - избавить разработчиков от рутинной работы (упаковка\распаковка, протоколы, конвертация, утилитарные методы и т.п.), чтобы они смогли сконцентрироваться на создании непосредственно логики продукта, то есть на творчестве. Ведь хороший программист - он как художник - творит программу, которая в свою очередь должна работать быстро, надежно и удобно для пользователя.
В нашем варианте это достигается за счет применения визуальных редакторов, через которые архитектор или дизайнер проекта вводит объекты, поля, заготовки и шаблоны будущих методов. на основе которых генераторы кода - создают исходный код структур и шаблонов. В которые уже программисты логики пишут свой код логики проекта.
Единый язык. Редакторы, с генераторами кода создают единый язык разработки продукта (правила, порядок, расположение), что позволяет всем разработчикам легко понимать друг друга и четко определять свое место и задачи в проекте. Данный подход в полной мере реализует основные принципы DDD (Domain-Driven Design): единый язык, стратегическое и тактическое моделирование. Что в свою очередь кратно уменьшает время разработки.
Гибкость. Платформа предоставляет практически все необходимые инструменты для создания продуктов самой различной направленности (транспорт, модули, микросервисы, хранилища данных). Реализует очень гибкий подход, когда сама подстраивается под все нужды и требования проекта, что также ускоряет разработку и снимает риски проекта по технической части.
Полный контроль над проектом. Все генераторы кода могут как использоваться готовые, так и писаться опытными разработчиками проекта. Получается, что компания - разработчик полностью контролирует все части продукта (имеет все исходники). При этом кратно уменьшается время внесения разного рода правок и дополнений в уже работающий продукт, что добавляет плюс в DevOps направление.
Вхождение в проект. Так, как используются визуальные редакторы (вся структура проекта и описание находится в одном месте), то время вхождения новых разработчиков очень невелико. Всегда можно быстро определить, что откуда и куда в проекте. Нет необходимости долго лазить по исходникам и выискивать связи.
Автоматическая постановка задач. Платформа позволяет автоматически ставить задачи разработчикам при проектировании структуры проекта и шаблонов основных методов.
Единая и четка структура проекта. Разработчики логики не могут изменять структуру и архитектуру проекта (генерируется платформой). Структуру меняет только архитектор или ведущий разработчик.
Мультиязычность. Платформа не привязана к какому-то одному языку и ОС. Генераторы кода могут быть созданы под самые различные языки программирования и различные операционные системы.
Добавление собственных редакторов. В платформу можно добавить и собственные редакторы, которые максимально плотно "заточены" под реализуемый проект.
Интеграция платформы с административным инструментарием проекта (админки) позволяет быстро доставлять новшества и изменения в уже функционирующий продукт.
Исходя из всех этих тезисов можно сделать вывод, что:
Платформа это инструмент единения команды и программных решений в достижении общей цели.
Описанная платформа нами успешно создана и опробована в разработке различных проектов и показала себя только с хорошей стороны.
Я как архитектор и лид разработки буквально отдыхал при создании последних проектов и содроганием вспоминаю, когда приходилось использовать кучу сторонних, неконтролируемых мной, продуктов и проект был похож на "лоскутное одеяло".
Тут же вся система работает четко, надежно и красиво. С полным контролем всех частей.
Желающие более подробно ознакомится с возможностями платформы могут это на сайте
На все вопросы отвечу в телеграме @Darion4455