В статье расскажем о выгоде для бизнеса и преимуществах для разработки от подхода Progressive Media. Кейсы и 20+ полезных ссылок для специалистов Bitrix.
В начале июня руководитель проектного офиса Progressive Media Татьяна Корчинова выступила на выставке Ecom Expo 24 в деловой программе блока «Back-end и системные интеграции» с темой: «Масштабирование высоконагруженных web-проектов на Bitrix». После выступления мы получили комментарии и вопросы, на которые ответим в статье.
t.me/progressivemediabot – в чат-боте презентация, полезные материалы и кейсы по реализации сложных e-commerce проектов.
Стандартное коробочное решение на основе CMS 1С-Битрикс это быстрый и доступный способ для запуска типового шаблонного проекта.
Если проект активно развивать и поддерживать в пределах стандартной Bitrix MVC архитектуры, периодически выполнять deploy релизов с новым функционалом на dev -> stage -> production окружение, можно заметить, что часто увеличивается сложность выполняемых задач и взаимосвязей в функционале, в разработку вовлекаются новые разработчики, вместе с этим кодовая база разрастается и становится трудно поддерживаемой, бизнес-логика, реализованная в рамках одного компонента, требуется в другом, но немного отличная, начинается копипаст вместо рефакторинга, появляются сторонние интеграции с внешними системами, которые требует подключения сторонних SDK и взаимодействия с API, растет нагрузка на сервер, появляется необходимость в использовании брокера сообщений (очередей), дополнительного слоя репликаций в высокоскоростные In-memory NoSQL представления данных.
Приходит понимание, что для решения насущных проблем необходимо вести документацию, покрывать код тестами, разделять зону ответственности и коммуникацию между DevOps, SecOps, Back-end, Front-end, QA, в связи с чем требуется пересматривать архитектуру проекта и внедрять дополнительные инструментальные средства.
Современные подходы разработки предлагают обширные наборы качественных, производительных, масштабируемых Open Source инструментов, которые при должном опыте можно эффективно интегрировать или подружить с Bitrix, использовать при реализации разного спектра бизнес-задач, получая на выходе оптимальную скорость в работе функционала.
— В настоящий момент у вас небольшой бизнес, стандартные решения из коробки подходят на 100%, но планируется масштабирование проекта, реализация отдельных сервисов.
— У вас крупный проект на Bitriх, уже стоите на пороге, когда с возросшим количеством различных интеграций и доработок необходимо развивать Package by Feature архитектуру (когда большие куски логики в монолитном Bitrix делим на фичи в виде отдельных пакетов/сервисов), но количество реализованного функционала настолько велико, что писать проект с нуля - задача на долгие годы. Применение подхода позволит проводить плавный переход работающего проекта на новую архитектуру.
— Оптимальная скорость в функционировании проекта, возможность масштабирования.
— Прогнозируемый контроль технического долга и стабильность функционирования проекта.
— Минимальное проявление падений, ошибок, несостыковок бизнес-логик в функционале, процессах.
— Быстрое внедрение нового функционала, при этом не ломая существующий.
— Гибкость при доработках UI интерфейсов.
— Гибкость при использовании API Back-End для разных клиентов Front-End: Site Application, Mobile Application.
— Оптимизированы процессы локальной, контейнерной разработки, покрытия функционала тестами, документирования, автоматизирован Deploy на dev, stage, prod окружения проекта.
— Оптимизированы временные расходы на коммуникацию, проектирование, разработку, рабочие процесс между командами DevOps, SecOps, Back-End, Front-End, QA.
— Минимизированы временные издержки при ротации, подключении новых инженеров и разработчиков в командах DevOps, SecOps, Back-End, Front-End, QA.
— Команды DevOps, SecOps, Back-End, Front-End, QA имеют вариативность в подборе, использовании современных инфраструктурных инструментов для решения задач любой сложности
— Возможность для использования современных стандартов, практики при проектировании архитектуры, разработки, рефакторинге функционала и сопровождении, тестировании проектов.
— При разработке модификации функционала или расширении кодовой базы проекта становится возможным выработать стратегию по соблюдению баланса между рефакторингом и легаси кодом.
— Подходы к более точным оценкам трудочасов требуемых на выполнении задач командами DevOps, SecOps, Back-End, Front-End, QA.
— Гибкие современные инфраструктурные средства для резервного копирования и восстановительных работ.
Преимущества:
При разделенном подходе за Front-End отвечает отдельная команда разработчиков, что дает большую гибкость в найме новых сотрудников или ротации разработчиков, т.к работают с привычным стеком технологий.
При современном подходе к разработке Front-End: Site Application, за основу часто выбирают реактивные фреймворки, мы используем Vue.js (+ Nuxt) или React (+ Next.js) на выбор клиента.
На крупных проектах используем FSD архитектуру и API-First (Spec first) подход при разработке Front-End части приложения.
Когда за back-end и front-end отвечают разные команды, появляются проблемы с коммуникацией между ними, основной пул вопросов связан с проектировкой API Endpoint и структурами данных. API-First подход необходим для минимизации временных издержек на планерки, созвоны, старт работ (фронт и бэк реализуются параллельно, когда пилится бизнес-логика, верстка готова), подключения новых разработчиков (передача знаний от разработчика к разработчику).
Также возникает вопрос — где и как вести документацию по API, чтобы разработчики (бэк/фронт) могли совместно ее разрабатывать и корректировать, на помощь приходит Open API спецификация.
2. Для оптимизации работы разработчиков (бэк/фронт), минимизации временных издержек при редактировании файлов схем Open API и агрегирования разных API, встает вопрос автоматизации. На помощь приходят инструменты по автоматической генерации Open API, файлов схем.
Инструмент: OpenAPI Generator
Php пакет: ircote/swagger-php
Также пробуем альтернативу Open API в виде jsight, для простых проектов, синтаксис выглядит проще.
Инструмент: jsight
3. Чтобы реализовать централизованную обработку маршрутов и HTTP запросов поступающих на back-end API проектов необходим функционал по реализации роутинга.
В Open Source решениях и фреймворках, таких как Slim или symfony/routing, достаточно гибкости, функционала, скорость обработки HTTP запросов также выше. В Open Source решениях используется внутри кэширование карты маршрутов + composer пакет, реализованный одним из активных контрибьюторов ядра языка PHP.
До появления Bitrix Routing для работы с маршрутами и реализации API обработчиков со стороны back-end у нас использовался PHP composer-пакет Slim, на нем и остаемся.
Composer PHP пакет: Slim 4
Наша система сама подберет вам исполнителей на услуги, связанные с разработкой сайта или приложения, поисковой оптимизацией, контекстной рекламой, маркетингом, SMM и PR.
Заполнить заявку
12168 тендеров
проведено за восемь лет работы нашего сайта.
Для реализации обратной совместимости с Bitrix Routing и файлом urlrewrite.php реализован кастомный функционал.
Также имеется аналогичная сборка с полноценным подключением Symfony в Bitrix, маршрутизацией через компонент symfony/routing: разработчику становятся доступны любые bundles и components из экосистемы Symfony.
restore: — крупнейшая сеть магазинов и сервисных центров техники Apple в России.
Результат работы команды Progressive Media:
Усовершенствование архитектуры делает интернет-магазин простым в использовании и сопровождении, сокращает время на разработку и поддержку проекта. Использование Vue js и Symfony фреймворков позволяет выстроить стандартизированную работу, которую можно автоматизировать.
Motherbear - одна из крупнейших сетей магазинов товаров для будущих мам и детей.
Результат работы команды Progressive Media:
Подход позволил быстро начать получать прибыль, не тратить дополнительные деньги заказчика на разработку дополнительных лендингов и сайтов разработанных на шаблонах, бесшовно расширять и дорабатывать уже готовый проект.
Важно оценить бизнес-цели и технические требования перед тем, как выбирать инструмент. Выше мы перечислили плюсы решения Progressive Media, на которые обращают внимание заказчики.
Если вы быстро развивающийся бизнес или у вас крупный проект, с большим количеством интеграций, то сотрудничество с Progressive Media будет оптимальным.
progressivemedia.ru/#feedback - для получения консультации от экспертов Progressive Media.
20+ полезных ссылок для специалистов Bitrix. Статьи:
1. Реактивные сайты против композитных: что круче
2. Серверный рендеринг React, или Реактивные seo-френдли-сайты на Битриксе
3. Что такое Server-Side Rendering
4. CSR, SSG, SSR — про рендеринг приложений на примерах
5. Что такое Vue.js и реактивный интерфейс
6. Зачем фронтендерам React, если есть JavaScript
7. Обзор FSD
8. API First vs Code First: выбор правильного подхода к созданию продуктов
11. Унифицируй это: как Lamoda делает единообразными свои Go сервисы (Spec first)
12. OpenAPI/Swagger для начинающих
13. OpenAPI: что это такое и как с ним работать
16. Разработчик Bitrix Framework -> Роутинг
17. Composer для самых маленьких
20. Symfony -> Система пакетов
21. Проект на Laravel: все точки над i