...

Программа platform что это

Программная платформа для разработки приложений. Что это, и для чего она нужна?

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

639 открытий
Darion Software Platform

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

Давайте посмотрим, что такое программная платформа.

Изначально скажу что платформа — это в первую очередь набор четких правил, по которым происходит разработка и которые необходимо неукоснительно соблюдать. Все эти правила можно организовать и при обычной разработке, но людей достаточно сложно заставить четко соблюдать ВСЕ правила. В нашем случае все правила берет на себя инструментарий платформы и программистам уже хочешь-не хочешь приходится их соблюдать 🙂

Основная задача нашей платформы — избавить разработчиков от рутинной работы (упаковка\распаковка, протоколы, конвертация, утилитарные методы и т.п.), чтобы они смогли сконцентрироваться на создании непосредственно логики продукта, то есть на творчестве. Ведь хороший программист — он как художник — творит программу, которая в свою очередь должна работать быстро, надежно и удобно для пользователя.

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

Визуальные редакторы платформы

Единый язык. Редакторы, с генераторами кода создают единый язык разработки продукта (правила, порядок, расположение), что позволяет всем разработчикам легко понимать друг друга и четко определять свое место и задачи в проекте. Данный подход в полной мере реализует основные принципы DDD (Domain-Driven Design): единый язык, стратегическое и тактическое моделирование. Что в свою очередь кратно уменьшает время разработки.

Гибкость. Платформа предоставляет практически все необходимые инструменты для создания продуктов самой различной направленности (транспорт, модули, микросервисы, хранилища данных). Реализует очень гибкий подход, когда сама подстраивается под все нужды и требования проекта, что также ускоряет разработку и снимает риски проекта по технической части.

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

Вхождение в проект. Так, как используются визуальные редакторы (вся структура проекта и описание находится в одном месте), то время вхождения новых разработчиков очень невелико. Всегда можно быстро определить, что откуда и куда в проекте. Нет необходимости долго лазить по исходникам и выискивать связи.

Автоматическая постановка задач. Платформа позволяет автоматически ставить задачи разработчикам при проектировании структуры проекта и шаблонов основных методов.

Единая и четкая структура проекта. Разработчики логики не могут изменять структуру и архитектуру проекта (генерируется платформой). Структуру меняет только архитектор или ведущий разработчик.

Мультиязычность. Платформа не привязана к какому-то одному языку и ОС. Генераторы кода могут быть созданы под самые различные языки программирования и различные операционные системы.

Добавление собственных редакторов В платформу можно добавить и собственные редакторы, которые максимально плотно «заточены» под реализуемый проект.

Интеграция платформы с административным инструментарием проекта (админки) позволяет быстро доставлять новшества и изменения в уже функционирующий продукт.

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

Платформа и команда разработчиков

Описанная платформа нами успешно создана и опробована в разработке различных проектов и показала себя только с хорошей стороны.

Я как архитектор и лид разработки буквально отдыхал при создании последних проектов и содроганием вспоминаю, когда приходилось использовать кучу сторонних, неконтролируемых мной, продуктов и проект был похож на «лоскутное одеяло».

Тут же вся система работает четко, надежно и красиво. С полным контролем всех частей.

Желающие более подробно ознакомится с возможностями платформы могут это на сайте

На все вопросы отвечу в телеграме @Darion4455

Framework vs Platform: в чём разница?

Привет, Хабр! Представляю вашему вниманию перевод статьи «Framework Vs. Platform What’s The Difference?» автора G. Harris.

Исповедуюсь: я педант. Несмотря на личные неудачи на этом поприще, я глубоко верю, что использование правильного языка добавляет множество преимуществ. Процитирую афоризм Марка Твена:

Разница между почти правильным словом и правильным словом действительно много значит. Это разница между светлячком (lightning bug) и молнией (lightning).

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

Я хотел бы предложить одно из возможных определений по аналогии.

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

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

  • Сначала спросим, откуда взялось определение компонентной структуры? Возвращаясь к сравнению со строительными блоками, выбор доступных к использованию форм ограничен. Какие формы имеют смысл, будет зависеть от руководящих принципов, которые были выбраны с самого начала. Лежащая в основе фреймворка философия будет диктовать выбор возможных компонентных структур. Кстати, «компонент» — это еще одна из тех концепций, которая часто используется, редко продумана и обычно плохо определена. Тем не менее, привлечение простой аналогии сразу проясняет важность хорошо определённой (well-defined) концепции компонента.
  • Следующий вопрос, который нужно задать, — это как собирать компоненты. Используется ли технология коннекторов, и как она работает? Конечно, наши компоненты могут быть похожи на деревянные кубики без реальных соединителей между блоками. Но для платформы этого недостаточно. Две возможные альтернативы можно увидеть у Lego ™ и Fischer-Price ™. Обе они позволяют присоединять другие блоки, добавив точки подключения (или порты) к каждому строительному блоку. В идеале именно так должны работать компоненты нашей платформы.
  • Последнее ключевое замечание заключается в том, что отдельный строительный блок не знает о внутренней имплементации или свойствах всех остальных строительных блоков. У него есть только точки подключения (порты) и гарантия того, что он может работать вместе с любым другим компонентом, если соединитель (интерфейс) совпадёт. Компоненты являются анонимными, в очень точном смысле этого выражения. Обратите внимание, что это очень похоже на принцип взаимного забвения, выдвинутый Ральфом Вестфалом.

Фреймворк теперь можно определить как набор концепций, библиотек, инструментов и практик, которые обеспечивают:

  1. Стандартизированную концепцию компонента для использования внутри платформы
  2. Стандартизированную технологию коннекторов, которая обеспечивает коммуникацию между компонентами в платформе и сохраняет анонимность отдельных компонентов.

Платформа — это набор повторно используемых компонентов, которые были сконструированы в соответствии с принципами и философией платформы.

Возможны и другие определения, но я считаю именно эти определения чрезвычайно полезными.

Прошу заметить, насколько фундаментальной является концепция стандартизации в этом контексте. Задумайтесь на минуту о мире, в котором каждая электрическая вилка была уникальным продуктом ручной работы. Массовое производство электрических устройств никогда не станет индустрией в таком мире. То же самое относится и к платформе. Чтобы они могли играть в команде, все компоненты платформы должны иметь стандартизированную структуру и должны использовать стандартизированные концепции для взаимной коммуникации.

Я объяснил свою точку зрения: платформе требуется фреймворк в качестве основы. Фреймворк обеспечивает парадигмы компонентности и коммуникации. Он обеспечивает стандартизацию, необходимую для создания взаимозаменяемых компонентов. По мере того, как компоненты проектируются, создаются и тестируются, они становятся строительными блоками и вносят свой вклад в платформу. Фреймворк ограничивает степени свободы, которые доступны разработчикам. Он направляет и руководит их усилиями, чтобы достичь той критической степени стандартизации, которая требуется для успеха платформы.

Фреймворк может иметь дополнительные обязанности. В идеале он будет поддерживать концепцию причинно-следственных связей (по-немецки Wirkketten), позволяющую идентифицировать зависимости времени выполнения, потоки данных и потоки управления. Кроме того, он должен содержать (и скрывать) необходимый механизм для работы с параллелизмом. Но это послужит материалом для другой статьи.

  • архитектура приложений
  • сложные системы
  • процесс разработки
  • качество по
  • инженерия программного обеспечения

Открываем доступ к Platform V для рынка

image

У нас примерно три тысячи команд разработки, поэтому, очевидно, нам нужна была платформа, которая позволит быстро выпускать новые приложения, делать изменения в существующих, а так же обеспечивать надежное и безопасное исполнение созданных приложений. Спустя несколько поколений эволюции мы собрали вообще всё, что было разработано в банке, в единую систему. Можно, условно, постучать по API для доступа к любому нужному сервису — и получить кусочек конструктора. Сейчас мы даём доступ для разработки на этой Платформе.

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

image

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

То есть у нас есть максимально открытый комбайн, который можно использовать для разработки и который будет поддерживаться далеко не только нами.

Что внутри

Используя Платформу, вы по факту работаете со всем тем пластом решений, на котором держится современный опенсорс. Платформа — это набор компонентов, набор инструментов, набор архитектурных шаблонов для построения приложений на всех слоях структуры Энтерпрайз-архитектуры. То есть, по сути, это комплексное решение для того, чтобы автоматизировать всё, чем пользуется любой большой энтерпрайз, да и любая другая компания. На Платформе можно делать фронтальные приложения. На Платформе можно делать бэкофисные приложения. Можно интегрировать. Можно включить свой Legacy-ландшафт в Платформу. И точно так же можно построить модели, аналитические витрины и так далее. Есть готовые компоненты, шаблонные структуры и шаблонные архитектуры.

Многие инструменты имеют интерфейсы, позволяющие накидать только бизнес-логику на основе типовых шаблонов.

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

image

Доступы

Часть сервисов доступна публично, но крупный энтерпрайз — это в первую очередь решения на базе частных облаков. Именно поэтому мы готовы ставить нашу Платформу в частном облаке как регион SberCloud, а в дополнение к этому предоставить обучение сотрудников эффективной работе с ней, в том числе подходам к миграции с Legacy-приложений. Всё, что касается безопасности, надёжности, сопровождения, всё это уже есть в Платформе. Плюс клиент сразу получает готовые решения по построению архитектуры, избавлению от единых точек отказа и работающие подходы к трансформации своего ландшафта. И все это от одного поставщика с гарантированным уровнем SLA.

Компоненты Платформы находятся или на территории заказчика, или в наших ЦОДах, при этом платформа предоставляется как услуга, а значит сразу обеспечивается полное соответствие отечественным стандартам в частности финансовой информации, персональных данных и так далее.

Уже сейчас два компонента платформы доступны на СмартМаркет. Они позволяют создать полноценный микросервис с хранением и обработкой бизнес логики в режими самообслуживания буквально за 15 минут. Заходите, регистрируйтесь, пробуйте бесплатно. Созданный микросервис можно использовать как в готовом приложении, так и в любом другом вашем собственном приложении. Раздел с документацией по Платформе.

Для организация мы предлагаем индивидуальные условия сотрудничества.
Более подробно на нашем сайте Platform V.

Компоненты

image

image

Больше деталей будет на конференции 20 мая — и техническая часть с разбором и примерами кода, и организационная для продактов, и больше про то, как начать работать с Платформой.

  • инструменты разработчика
  • цифровая платформа
  • фреймворк
  • API
  • Platform V
  • готовые решения
  • опенсорс
  • разработчики
  • архитектура
  • управление

При подготовке материала использовались источники:
https://vc.ru/s/1278140-darioncode/486765-programmnaya-platforma-dlya-razrabotki-prilozheniy-chto-eto-i-dlya-chego-ona-nuzhna
https://habr.com/ru/articles/489594/
https://habr.com/ru/companies/sberbank/articles/557450/

Оцените статью