Привет, Хабр! Представляю вашему вниманию перевод статьи «Framework Vs. Platform What’s The Difference?» автора G. Harris.
Исповедуюсь: я педант. Несмотря на личные неудачи на этом поприще, я глубоко верю, что использование правильного языка добавляет множество преимуществ. Процитирую афоризм Марка Твена:
Разница между почти правильным словом и правильным словом действительно много значит. Это разница между светлячком (lightning bug) и молнией (lightning).
Ввиду этой разницы я вижу смысл в том, что время от времени меня раздражает недостаток ясности вокруг двух концепций фреймворк и платформа. Какая-нибудь платформа есть у любой компании в мире, которая имеет отношение к разработке. В мире опенсорса полно фреймворков. Но мало кто может определить эти концепции, будучи спрошен. Если я не способен дать чёткие определения базовой терминологии, могу ли я претендовать на полное понимание предмета обсуждения?
Я хотел бы предложить одно из возможных определений по аналогии.
7 Платформ для создания обучения. Обзор на сервисы для создания онлайн курсов
Платформа — это нечто, что можно сравнить с коробкой-конструктором, которая была в комнате у моих детей, когда они были маленькими. Отдельные кубики являются компонентами. На идеальной платформе доступно множество разных комбинаций для сборки компонент, и может быть создан широкий спектр конечных продуктов. Платформы предлагают святой грааль повторного использования ПО: вот почему они так популярны.
Но каковы пререквизиты для построения платформы? Чтобы быть успешной, платформа должна отвечать некоторым обязательным техническим требованиям, и удовлетворить их — задача фреймворка.
- Сначала спросим, откуда взялось определение компонентной структуры? Возвращаясь к сравнению со строительными блоками, выбор доступных к использованию форм ограничен. Какие формы имеют смысл, будет зависеть от руководящих принципов, которые были выбраны с самого начала. Лежащая в основе фреймворка философия будет диктовать выбор возможных компонентных структур. Кстати, «компонент» — это еще одна из тех концепций, которая часто используется, редко продумана и обычно плохо определена. Тем не менее, привлечение простой аналогии сразу проясняет важность хорошо определённой (well-defined) концепции компонента.
- Следующий вопрос, который нужно задать, — это как собирать компоненты. Используется ли технология коннекторов, и как она работает? Конечно, наши компоненты могут быть похожи на деревянные кубики без реальных соединителей между блоками. Но для платформы этого недостаточно. Две возможные альтернативы можно увидеть у Lego ™ и Fischer-Price ™. Обе они позволяют присоединять другие блоки, добавив точки подключения (или порты) к каждому строительному блоку. В идеале именно так должны работать компоненты нашей платформы.
- Последнее ключевое замечание заключается в том, что отдельный строительный блок не знает о внутренней имплементации или свойствах всех остальных строительных блоков. У него есть только точки подключения (порты) и гарантия того, что он может работать вместе с любым другим компонентом, если соединитель (интерфейс) совпадёт. Компоненты являются анонимными, в очень точном смысле этого выражения. Обратите внимание, что это очень похоже на принцип взаимного забвения, выдвинутый Ральфом Вестфалом.
Фреймворк теперь можно определить как набор концепций, библиотек, инструментов и практик, которые обеспечивают:
Что такое платформа 1С Предприятие простым языком
- Стандартизированную концепцию компонента для использования внутри платформы
- Стандартизированную технологию коннекторов, которая обеспечивает коммуникацию между компонентами в платформе и сохраняет анонимность отдельных компонентов.
Платформа — это набор повторно используемых компонентов, которые были сконструированы в соответствии с принципами и философией платформы.
Возможны и другие определения, но я считаю именно эти определения чрезвычайно полезными.
Прошу заметить, насколько фундаментальной является концепция стандартизации в этом контексте. Задумайтесь на минуту о мире, в котором каждая электрическая вилка была уникальным продуктом ручной работы. Массовое производство электрических устройств никогда не станет индустрией в таком мире. То же самое относится и к платформе. Чтобы они могли играть в команде, все компоненты платформы должны иметь стандартизированную структуру и должны использовать стандартизированные концепции для взаимной коммуникации.
Я объяснил свою точку зрения: платформе требуется фреймворк в качестве основы. Фреймворк обеспечивает парадигмы компонентности и коммуникации. Он обеспечивает стандартизацию, необходимую для создания взаимозаменяемых компонентов. По мере того, как компоненты проектируются, создаются и тестируются, они становятся строительными блоками и вносят свой вклад в платформу.
Фреймворк ограничивает степени свободы, которые доступны разработчикам. Он направляет и руководит их усилиями, чтобы достичь той критической степени стандартизации, которая требуется для успеха платформы.
Фреймворк может иметь дополнительные обязанности. В идеале он будет поддерживать концепцию причинно-следственных связей (по-немецки Wirkketten), позволяющую идентифицировать зависимости времени выполнения, потоки данных и потоки управления. Кроме того, он должен содержать (и скрывать) необходимый механизм для работы с параллелизмом. Но это послужит материалом для другой статьи.
- архитектура приложений
- сложные системы
- процесс разработки
- качество по
- инженерия программного обеспечения
Источник: habr.com
Программная платформа для разработки приложений. Что это, и для чего она нужна?
Платформа это новый этап в эволюции разработки. Беря на себя всю рутинную часть — предоставляет разработчику простор для творчества и созидания. Кратно уменьшает сроки разработки и риски проекта.
Так что же это за такой зверь невиданный и как он вообще работает? Постараюсь ответить на эти вопросы на примере нашей разработки платформы.
Давайте посмотрим, что такое программная платформа.
Изначально скажу что платформа — это в первую очередь набор четких правил, по которым происходит разработка и которые необходимо неукоснительно соблюдать. Все эти правила можно организовать и при обычной разработке, но людей достаточно сложно заставить четко соблюдать ВСЕ правила. В нашем случае все правила берет на себя инструментарий платформы и программистам уже хочешь-не хочешь приходится их соблюдать 🙂
Основная задача нашей платформы — избавить разработчиков от рутинной работы (упаковкараспаковка, протоколы, конвертация, утилитарные методы и т.п.), чтобы они смогли сконцентрироваться на создании непосредственно логики продукта, то есть на творчестве. Ведь хороший программист — он как художник — творит программу, которая в свою очередь должна работать быстро, надежно и удобно для пользователя.
В нашем варианте это достигается за счет применения визуальных редакторов, через которые архитектор или дизайнер проекта вводит объекты, поля, заготовки и шаблоны будущих методов. на основе которых генераторы кода — создают исходный код структур и шаблонов. В которые уже программисты логики пишут свой код логики проекта.
Единый язык. Редакторы, с генераторами кода создают единый язык разработки продукта (правила, порядок, расположение), что позволяет всем разработчикам легко понимать друг друга и четко определять свое место и задачи в проекте. Данный подход в полной мере реализует основные принципы DDD (Domain-Driven Design): единый язык, стратегическое и тактическое моделирование. Что в свою очередь кратно уменьшает время разработки.
Гибкость. Платформа предоставляет практически все необходимые инструменты для создания продуктов самой различной направленности (транспорт, модули, микросервисы, хранилища данных). Реализует очень гибкий подход, когда сама подстраивается под все нужды и требования проекта, что также ускоряет разработку и снимает риски проекта по технической части.
Полный контроль над проектом. Все генераторы кода могут как использоваться готовые, так и писаться опытными разработчиками проекта. Получается, что компания — разработчик полностью контролирует все части продукта (имеет все исходники). При этом кратно уменьшается время внесения разного рода правок и дополнений в уже работающий продукт, что добавляет плюс в DevOps направление.
Вхождение в проект. Так, как используются визуальные редакторы (вся структура проекта и описание находится в одном месте), то время вхождения новых разработчиков очень невелико. Всегда можно быстро определить, что откуда и куда в проекте. Нет необходимости долго лазить по исходникам и выискивать связи.
Автоматическая постановка задач. Платформа позволяет автоматически ставить задачи разработчикам при проектировании структуры проекта и шаблонов основных методов.
Единая и четка структура проекта. Разработчики логики не могут изменять структуру и архитектуру проекта (генерируется платформой). Структуру меняет только архитектор или ведущий разработчик.
Мультиязычность. Платформа не привязана к какому-то одному языку и ОС. Генераторы кода могут быть созданы под самые различные языки программирования и различные операционные системы.
Добавление собственных редакторов. В платформу можно добавить и собственные редакторы, которые максимально плотно «заточены» под реализуемый проект.
Интеграция платформы с административным инструментарием проекта (админки) позволяет быстро доставлять новшества и изменения в уже функционирующий продукт.
Исходя из всех этих тезисов можно сделать вывод, что:
Платформа это инструмент единения команды и программных решений в достижении общей цели.
Описанная платформа нами успешно создана и опробована в разработке различных проектов и показала себя только с хорошей стороны.
Я как архитектор и лид разработки буквально отдыхал при создании последних проектов и содроганием вспоминаю, когда приходилось использовать кучу сторонних, неконтролируемых мной, продуктов и проект был похож на «лоскутное одеяло».
Тут же вся система работает четко, надежно и красиво. С полным контролем всех частей.
Желающие более подробно ознакомится с возможностями платформы могут это на сайте
softwareplatform.ru
Источник: temofeev.ru
Программная платформа для разработки приложений. Что это, и для чего она нужна?
Платформа это новый этап в эволюции разработки. Беря на себя всю рутинную часть — предоставляет разработчику простор для творчества и созидания. Кратно уменьшает сроки разработки и риски проекта.
499 просмотров
Darion Software Platform
Так что же это за такой зверь невиданный и как он вообще работает? Постараюсь ответить на эти вопросы на примере нашей разработки платформы, которая делалась под клиент-серверные продукты с мощной серверной частью.
Давайте посмотрим, что такое программная платформа.
Изначально скажу что платформа — это в первую очередь набор четких правил, по которым происходит разработка и которые необходимо неукоснительно соблюдать. Все эти правила можно организовать и при обычной разработке, но людей достаточно сложно заставить четко соблюдать ВСЕ правила. В нашем случае все правила берет на себя инструментарий платформы и программистам уже хочешь-не хочешь приходится их соблюдать 🙂
Основная задача нашей платформы — избавить разработчиков от рутинной работы (упаковкараспаковка, протоколы, конвертация, утилитарные методы и т.п.), чтобы они смогли сконцентрироваться на создании непосредственно логики продукта, то есть на творчестве. Ведь хороший программист — он как художник — творит программу, которая в свою очередь должна работать быстро, надежно и удобно для пользователя.
В нашем варианте это достигается за счет применения визуальных редакторов, через которые архитектор или дизайнер проекта вводит объекты, поля, заготовки и шаблоны будущих методов. на основе которых генераторы кода — создают исходный код структур и шаблонов. В которые уже программисты логики пишут свой код логики проекта.
Визуальные редакторы платформы
Единый язык. Редакторы, с генераторами кода создают единый язык разработки продукта (правила, порядок, расположение), что позволяет всем разработчикам легко понимать друг друга и четко определять свое место и задачи в проекте. Данный подход в полной мере реализует основные принципы DDD (Domain-Driven Design): единый язык, стратегическое и тактическое моделирование. Что в свою очередь кратно уменьшает время разработки.
Гибкость. Платформа предоставляет практически все необходимые инструменты для создания продуктов самой различной направленности (транспорт, модули, микросервисы, хранилища данных). Реализует очень гибкий подход, когда сама подстраивается под все нужды и требования проекта, что также ускоряет разработку и снимает риски проекта по технической части.
Полный контроль над проектом. Все генераторы кода могут как использоваться готовые, так и писаться опытными разработчиками проекта. Получается, что компания — разработчик полностью контролирует все части продукта (имеет все исходники). При этом кратно уменьшается время внесения разного рода правок и дополнений в уже работающий продукт, что добавляет плюс в DevOps направление.
Вхождение в проект. Так, как используются визуальные редакторы (вся структура проекта и описание находится в одном месте), то время вхождения новых разработчиков очень невелико. Всегда можно быстро определить, что откуда и куда в проекте. Нет необходимости долго лазить по исходникам и выискивать связи.
Автоматическая постановка задач. Платформа позволяет автоматически ставить задачи разработчикам при проектировании структуры проекта и шаблонов основных методов.
Единая и четкая структура проекта. Разработчики логики не могут изменять структуру и архитектуру проекта (генерируется платформой). Структуру меняет только архитектор или ведущий разработчик.
Мультиязычность. Платформа не привязана к какому-то одному языку и ОС. Генераторы кода могут быть созданы под самые различные языки программирования и различные операционные системы.
Добавление собственных редакторов В платформу можно добавить и собственные редакторы, которые максимально плотно «заточены» под реализуемый проект.
Интеграция платформы с административным инструментарием проекта (админки) позволяет быстро доставлять новшества и изменения в уже функционирующий продукт.
Исходя из всех этих тезисов можно сделать вывод, что:Платформа это инструмент единения команды и программных решений в достижении общей цели.
Платформа и команда разработчиков
Описанная платформа нами успешно создана и опробована в разработке различных проектов и показала себя только с хорошей стороны.
Я как архитектор и лид разработки буквально отдыхал при создании последних проектов и содроганием вспоминаю, когда приходилось использовать кучу сторонних, неконтролируемых мной, продуктов и проект был похож на «лоскутное одеяло».
Тут же вся система работает четко, надежно и красиво. С полным контролем всех частей.
Желающие более подробно ознакомится с возможностями платформы могут это на сайте
Источник: vc.ru