Framework vs Platform: в чём разница?
Привет, Хабр! Представляю вашему вниманию перевод статьи «Framework Vs. Platform What’s The Difference?» автора G. Harris.
Исповедуюсь: я педант. Несмотря на личные неудачи на этом поприще, я глубоко верю, что использование правильного языка добавляет множество преимуществ. Процитирую афоризм Марка Твена:
Разница между почти правильным словом и правильным словом действительно много значит. Это разница между светлячком (lightning bug) и молнией (lightning).
Ввиду этой разницы я вижу смысл в том, что время от времени меня раздражает недостаток ясности вокруг двух концепций фреймворк и платформа. Какая-нибудь платформа есть у любой компании в мире, которая имеет отношение к разработке. В мире опенсорса полно фреймворков. Но мало кто может определить эти концепции, будучи спрошен. Если я не способен дать чёткие определения базовой терминологии, могу ли я претендовать на полное понимание предмета обсуждения?
Я хотел бы предложить одно из возможных определений по аналогии.
Платформа — это нечто, что можно сравнить с коробкой-конструктором, которая была в комнате у моих детей, когда они были маленькими. Отдельные кубики являются компонентами. На идеальной платформе доступно множество разных комбинаций для сборки компонент, и может быть создан широкий спектр конечных продуктов. Платформы предлагают святой грааль повторного использования ПО: вот почему они так популярны.
Но каковы пререквизиты для построения платформы? Чтобы быть успешной, платформа должна отвечать некоторым обязательным техническим требованиям, и удовлетворить их — задача фреймворка.
- Сначала спросим, откуда взялось определение компонентной структуры? Возвращаясь к сравнению со строительными блоками, выбор доступных к использованию форм ограничен. Какие формы имеют смысл, будет зависеть от руководящих принципов, которые были выбраны с самого начала. Лежащая в основе фреймворка философия будет диктовать выбор возможных компонентных структур. Кстати, «компонент» — это еще одна из тех концепций, которая часто используется, редко продумана и обычно плохо определена. Тем не менее, привлечение простой аналогии сразу проясняет важность хорошо определённой (well-defined) концепции компонента.
- Следующий вопрос, который нужно задать, — это как собирать компоненты. Используется ли технология коннекторов, и как она работает? Конечно, наши компоненты могут быть похожи на деревянные кубики без реальных соединителей между блоками. Но для платформы этого недостаточно. Две возможные альтернативы можно увидеть у Lego ™ и Fischer-Price ™. Обе они позволяют присоединять другие блоки, добавив точки подключения (или порты) к каждому строительному блоку. В идеале именно так должны работать компоненты нашей платформы.
- Последнее ключевое замечание заключается в том, что отдельный строительный блок не знает о внутренней имплементации или свойствах всех остальных строительных блоков. У него есть только точки подключения (порты) и гарантия того, что он может работать вместе с любым другим компонентом, если соединитель (интерфейс) совпадёт. Компоненты являются анонимными, в очень точном смысле этого выражения. Обратите внимание, что это очень похоже на принцип взаимного забвения, выдвинутый Ральфом Вестфалом.
Фреймворк теперь можно определить как набор концепций, библиотек, инструментов и практик, которые обеспечивают:
- Стандартизированную концепцию компонента для использования внутри платформы
- Стандартизированную технологию коннекторов, которая обеспечивает коммуникацию между компонентами в платформе и сохраняет анонимность отдельных компонентов.
Платформа — это набор повторно используемых компонентов, которые были сконструированы в соответствии с принципами и философией платформы.
Возможны и другие определения, но я считаю именно эти определения чрезвычайно полезными.
Прошу заметить, насколько фундаментальной является концепция стандартизации в этом контексте. Задумайтесь на минуту о мире, в котором каждая электрическая вилка была уникальным продуктом ручной работы. Массовое производство электрических устройств никогда не станет индустрией в таком мире. То же самое относится и к платформе. Чтобы они могли играть в команде, все компоненты платформы должны иметь стандартизированную структуру и должны использовать стандартизированные концепции для взаимной коммуникации.
Я объяснил свою точку зрения: платформе требуется фреймворк в качестве основы. Фреймворк обеспечивает парадигмы компонентности и коммуникации. Он обеспечивает стандартизацию, необходимую для создания взаимозаменяемых компонентов. По мере того, как компоненты проектируются, создаются и тестируются, они становятся строительными блоками и вносят свой вклад в платформу. Фреймворк ограничивает степени свободы, которые доступны разработчикам. Он направляет и руководит их усилиями, чтобы достичь той критической степени стандартизации, которая требуется для успеха платформы.
Фреймворк может иметь дополнительные обязанности. В идеале он будет поддерживать концепцию причинно-следственных связей (по-немецки Wirkketten), позволяющую идентифицировать зависимости времени выполнения, потоки данных и потоки управления. Кроме того, он должен содержать (и скрывать) необходимый механизм для работы с параллелизмом. Но это послужит материалом для другой статьи.
- архитектура приложений
- сложные системы
- процесс разработки
- качество по
- инженерия программного обеспечения
Программная платформа для разработки приложений. Что это, и для чего она нужна?
Платформа это новый этап в эволюции разработки. Беря на себя всю рутинную часть — предоставляет разработчику простор для творчества и созидания. Кратно уменьшает сроки разработки и риски проекта.
624 открытия
Darion Software Platform
Так что же это за такой зверь невиданный и как он вообще работает? Постараюсь ответить на эти вопросы на примере нашей разработки платформы, которая делалась под клиент-серверные продукты с мощной серверной частью.
Давайте посмотрим, что такое программная платформа.
Изначально скажу что платформа — это в первую очередь набор четких правил, по которым происходит разработка и которые необходимо неукоснительно соблюдать. Все эти правила можно организовать и при обычной разработке, но людей достаточно сложно заставить четко соблюдать ВСЕ правила. В нашем случае все правила берет на себя инструментарий платформы и программистам уже хочешь-не хочешь приходится их соблюдать 🙂
Основная задача нашей платформы — избавить разработчиков от рутинной работы (упаковка\распаковка, протоколы, конвертация, утилитарные методы и т.п.), чтобы они смогли сконцентрироваться на создании непосредственно логики продукта, то есть на творчестве. Ведь хороший программист — он как художник — творит программу, которая в свою очередь должна работать быстро, надежно и удобно для пользователя.
В нашем варианте это достигается за счет применения визуальных редакторов, через которые архитектор или дизайнер проекта вводит объекты, поля, заготовки и шаблоны будущих методов. на основе которых генераторы кода — создают исходный код структур и шаблонов. В которые уже программисты логики пишут свой код логики проекта.
Визуальные редакторы платформы
Единый язык. Редакторы, с генераторами кода создают единый язык разработки продукта (правила, порядок, расположение), что позволяет всем разработчикам легко понимать друг друга и четко определять свое место и задачи в проекте. Данный подход в полной мере реализует основные принципы DDD (Domain-Driven Design): единый язык, стратегическое и тактическое моделирование. Что в свою очередь кратно уменьшает время разработки.
Гибкость. Платформа предоставляет практически все необходимые инструменты для создания продуктов самой различной направленности (транспорт, модули, микросервисы, хранилища данных). Реализует очень гибкий подход, когда сама подстраивается под все нужды и требования проекта, что также ускоряет разработку и снимает риски проекта по технической части.
Полный контроль над проектом. Все генераторы кода могут как использоваться готовые, так и писаться опытными разработчиками проекта. Получается, что компания — разработчик полностью контролирует все части продукта (имеет все исходники). При этом кратно уменьшается время внесения разного рода правок и дополнений в уже работающий продукт, что добавляет плюс в DevOps направление.
Вхождение в проект. Так, как используются визуальные редакторы (вся структура проекта и описание находится в одном месте), то время вхождения новых разработчиков очень невелико. Всегда можно быстро определить, что откуда и куда в проекте. Нет необходимости долго лазить по исходникам и выискивать связи.
Автоматическая постановка задач. Платформа позволяет автоматически ставить задачи разработчикам при проектировании структуры проекта и шаблонов основных методов.
Единая и четкая структура проекта. Разработчики логики не могут изменять структуру и архитектуру проекта (генерируется платформой). Структуру меняет только архитектор или ведущий разработчик.
Мультиязычность. Платформа не привязана к какому-то одному языку и ОС. Генераторы кода могут быть созданы под самые различные языки программирования и различные операционные системы.
Добавление собственных редакторов В платформу можно добавить и собственные редакторы, которые максимально плотно «заточены» под реализуемый проект.
Интеграция платформы с административным инструментарием проекта (админки) позволяет быстро доставлять новшества и изменения в уже функционирующий продукт.
Исходя из всех этих тезисов можно сделать вывод, что:Платформа это инструмент единения команды и программных решений в достижении общей цели.
Платформа и команда разработчиков
Описанная платформа нами успешно создана и опробована в разработке различных проектов и показала себя только с хорошей стороны.
Я как архитектор и лид разработки буквально отдыхал при создании последних проектов и содроганием вспоминаю, когда приходилось использовать кучу сторонних, неконтролируемых мной, продуктов и проект был похож на «лоскутное одеяло».
Тут же вся система работает четко, надежно и красиво. С полным контролем всех частей.
Желающие более подробно ознакомится с возможностями платформы могут это на сайте
На все вопросы отвечу в телеграме @Darion4455
15 современных платформ от российских разработчиков, которые помогут в развитии бизнеса
На фоне ухода многих зарубежных компаний и известных разработчиков пользователи все чаще обращаются к российским сервисам и платформам.
15 показов
2K открытий
Расскажу о 15 интересных российских сервисах, которые помогают справиться с рабочей рутиной и делают развитие бизнеса проще и эффективнее.
Современные платформы позволяют быстро и легко решать целый комплекс задач, оптимизировать рутинные процессы и упрощать рабочие моменты. В списке – как бесплатные, так и платные варианты, которые могут пригодиться предпринимателям.
Сервисы для продвижения
Сервис для рассылки пресс-релизов и новостей по базе из более чем 30 000 партнерских СМИ. Платформа работает уже 10 лет – некогда небольшой стартап теперь входит в тройку ведущих PR-сервисов России и СНГ. На выбор пользователям предлагаются разнообразные тарифы, в которые, помимо рассылок, включены отчеты, аналитика и различные бонусы. Также можно обратиться к сервису за коммуникационным аудитом бренда, анализом конкурентов и написанием пресс-релизов под ключ.
Платформа для мониторинга социальных сетей и СМИ, которая пригодится для SMM и маркетинга. Помогает формировать положительный имидж, отслеживать упоминания и оперативно реагировать на негативные или позитивные реакции со стороны клиентов. С помощью сервиса также можно анализировать эффективность рекламных кампаний. Бесплатно для двух пользователей.
Простой и удобный сервис для сквозной аналитики, а также управления рекламой и коллтрекинга. С его помощью можно анализировать данные и повышать эффективность маркетинга. Сервис представляет собой настоящую экосистему, состоящую из инструментов для работы маркетологов. Предусмотрены три пакета, самый дешевый из которых стоит 990 рублей в месяц.
Платформа представляет собой удобный и понятный SMM-планировщик, в котором сможет разобраться любой человек. Одна админка для всех социальных сетей позволяет сократить время на публикацию постов, а также посчитать отклики и охваты. Раз в неделю пользователи получают на почту аналитические отчеты по публикациям. Первая неделя использования бесплатная, а после можно выбрать один из четырех предложенных тарифов. Самый дешевый стоит около 976 рублей в месяц.
Маркетинговая платформа, благодаря которой можно обойтись без маркетолога. Позволяет привлекать больше трафика, увеличивать конверсию и повышать продажи за счет оптимизации рекламных каналов.
Простой и довольно удобный сервис, который позволяет в течение 15 минут создать e-mail рассылку. А/B-тесты позволяют узнать эффективность писем, а возможность сегментации базы подписчиков – отправлять группам предложения, которые будут релевантны для конкретных подписчиков. Платформа предусматривает тариф «Даром», в рамках которого можно разослать до 1500 бесплатных писем по базе из 100 подписчиков. Также есть вариант с бесплатной пробной рассылкой по базе из 10-50 тысяч подписчиков.
Платформа для управления – настройки и автоматизации – контекстной рекламы. Позволяет существенно упростить работу и освободить больше времени для более важных задач. Есть возможность бесплатной настройки рекламы ВКонтакте и myTarget при бюджете от 10 тысяч рублей, а также реклама с отсрочкой для новых пользователей с бюджетом от 300 тысяч рублей в месяц.
Сервисы для работы с текстом
Удобная платформа, которая поможет быстро «причесать» текст, сделать его понятнее и очистить от словесного мусора. Лишние местоимения, неубедительные или неуместные обобщения, стилистические ошибки, сложные обороты и формулировки – все эти слабые места можно найти и исправить с помощью советов сервиса.
Инновационный сервис smart-копирайтинга ReText.AI помогает перефразировать текст, сделав его на 100% уникальным, или сократить его без потери смысла. С помощью инструмента удобно делать быстрый рерайт, создавать краткое изложение к статьям или сокращать текст под требования той или иной социальной сети. Также можно сжать текст до 2 500 знаков под нужды поискового продвижения сайта.
Сервисы для планирования и управления
Удобный сервис от российских разработчиков позволяет легко и эффективно планировать работу над проектами. По своему функционалу платформа похожа на Trello: здесь также можно добавлять участников, создавать и редактировать карточки задач, ставить сроки выполнения и отмечать ход работы. Сервис полностью бесплатен и предусматривает работу команд численностью до 10 человек.
Удобная CRM-система, которая помогает настроить работу с клиентами, упростить коммуникации внутри компании, а также автоматизировать рутинные процессы. Пользователям доступна единая база клиентов, возможность отслеживать статус заявок, а также результаты, которые показывают менеджеры. Платформа позволяет общаться с клиентами в едином чате, подключать дополнительные программы и сервисы без участия специалистов и даже пользоваться внутренними видеоконференциями. Есть бесплатный двухнедельный пробный период, а большое количество тарифов позволяет с легкостью подобрать наиболее подходящий.
Платформа для управления онлайн торговлей – как через сайт, так и на маркетплейсах, в социальных сетях и даже мессенджерах. Товары можно добавлять вручную – или импортировать из файла, что существенно экономит время. Единый каталог позволяет взаимодействовать сразу с несколькими маркетплейсами и легко управлять остатками, корректировать цены и отслеживать заказы. У сервиса есть бесплатный тариф для стартапов, а также три платных на выбор. Самый дешевый обойдется в 1590 рублей в месяц.
Облачный сервис, с помощью которого можно легко и эффективно управлять торговлей. Новички смогут за пару часов наладить учет товара в магазине, а в будущем – создать полноценный бэк-офис. Помимо складского учета, сервис предусматривает обработку заказов, работу с менеджерами и отгрузками, а также работу с клиентскими базами. Для стартапов предусмотрен бесплатный тариф.
Сервис для общения и коммуникаций
Отличная российская альтернатива планеркам в Zoom и Google Meet. Платформа создана и развивается российскими разработчиками, а её функционал похож на зарубежные приложения. Проста в освоении, удобна. Всё, что требуется – завести почту на «Яндексе».
Сервис для создания сайтов
Простой и удобный конструктор сайтов и интернет-магазинов. Благодаря интуитивно понятному интерфейсу, создать сайт можно всего за один день. Сервис доступен бесплатно, при этом не требуется даже покупка домена. Отличный вариант для недорого тестирования бизнес-идей, а также на первых этапах создания бизнеса.
При подготовке материала использовались источники:
https://habr.com/ru/articles/489594/
https://vc.ru/s/1278140-darioncode/486765-programmnaya-platforma-dlya-razrabotki-prilozheniy-chto-eto-i-dlya-chego-ona-nuzhna
https://vc.ru/u/105246-trepolsky-dmitry/422500-15-sovremennyh-platform-ot-rossiyskih-razrabotchikov-kotorye-pomogut-v-razvitii-biznesa