Что не так со студиями, «прикипевшими» к популярным CMS, и так ли вам нужен чистый фреймворк
Битрикс или фреймворк?
Сибирикс
Битрикс или фреймворк?
Что не так со студиями, «прикипевшими» к популярным CMS, и так ли вам нужен чистый фреймворк
Редкий клиент приходит к нам с четким пожеланием: «Хочу проект строго на фреймворке!» или «Сделайте мне всё на Битриксе». Как правило, в запросах на разработку фигурируют возможности будущего сайта, глубина интеграций и сроки, а не конкретный стек технологий. И это — нормально. Заказчик должен думать о бизнес-метриках, а не о коде. Но вот последствия этого выбора — сколько вы будете платить за доработки, упадет ли сайт в черную пятницу и не взломают ли его через месяц — напрямую зависят от платформы. От чего же зависит этот выбор и как не ошибиться еще на берегу? Давайте разбираться.
Можно! Если не лениться и раскинуть мозгами — мы так не один модуль Битрикса переписали под нужды клиентов. Потому что надо. И потому что умеем думать и выходить за рамки. Но давайте честно: зачем бесконечно дорабатывать напильником то, что изначально создавалось под другие задачи?

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

Бесплатная CMS

Одна из самых популярных на западе бесплатных CMS — Wordpress, особенно для разработки простых корпоративных сайтов в компаниях средней руки. Популярна, в основном, по историческим причинам: изначально это блоговый движок, который стали использовать для чего только можно и нельзя. Хозяин-барин, но считаем нужным предупредить о главных минусах «бесплатного сыра»:
  • потенциальная вредоносность за счёт огромного количества готовых модулей от непонятных разработчиков (В e-commerce — это практически гарантированная утечка данных пользователей и платежей;
  • ограниченный функционал (для сложных решений всё равно придётся готовить костыли или пропадать на форумах в поисках готовых).

Бесплатные CMS подходят исключительно для небольших проектов с ОЧЕНЬ стандартным функционалом: без многогородовости, учета остатков по складам, миллиардов пунктов выдачи по стране, хитрых бронирований и всего такого прочего. И то — использовать конструкторы для таких задач и проще, и дешевле, и безопаснее.

В «Сибирикс» мы с WordPress и прочими бесплатными движками, как и с no-code конструкторами сайтов, не работаем в принципе. Мы создаем сложные, масштабируемые веб-системы highload-класса, поэтому наш стек — это CMS 1С-Битрикс и фреймворк Laravel. О них ниже.

Платная CMS

Который год в России де-факто монополист и № 1 — Битрикс. Потому что есть вездесущая 1С, потому что большое комьюнити, потому что какая-никакая техподдержка и потому что есть обучающие курсы для контент-менеджеров (и это далеко не полный список преимуществ).
Вокруг этой CMS много мифов и неконструктивных высказываний, но в программировании всегда так: либо есть те, кто недоволен технологией и ворчит, либо это мертвая технология.

Да, эта CMS на многое способна, её особенно любят владельцы e-commerce за богатые маркетинговые возможности и правила работы с корзиной, но всё-таки Битрикс не всесилен — в нашей практике полно случаев, когда интеграции с 1С-кой были болезненными, а готовые модули приходилось переписывать под конкретные нужды заказчика из-за ограничений самой CMS. То, что сделано у нас на проекте «Проаптека» — вообще невозможно воплотить «из коробки», например.
В личном кабинете фармпроизводители могут создавать промо, а аптечные сети в своих личных кабинетах могут их видеть и выбирать, в каких поучаствовать
При этом мы не утверждаем, что Битрикс плох для любого коммерческого проекта. Напротив, такие крутые проекты, как промосайт бренда «Чабан», корпоративный сайт компании «Риментел» или сайт клиники «Линия жизни», вполне неплохо себя чувствуют на Битриксе. Если задачи бизнеса ложатся на рельсы стандартной логики CMS и не требуют кардинальной перестройки ядра, «коробка» полностью оправдывает себя. Проблемы начинаются тогда, когда проект эти рамки перерастает.

Из корпоративных хроник «Сибирикс»

История 1: «Коллапс на кастомной 1С»
На одном из проектов 1С была кастомной примерно на 80%. Разработчик проверил интеграцию с сайтом в эмуляторе — всё работало. Но когда дошло дело до реальной интеграции, случился коллапс: Битрикс сыпал ошибками и ничего не загружалось. Мы долго выясняли причину. В эмуляторе интеграция происходит поэтапно, запросами: сначала авторизация в системе, потом первый запрос, потом второй, потом третий…

Внутри Битрикса из-за кастомной 1С-ки всё было иначе: Битрикс каждый раз пытался авторизоваться заново и не запоминал первый запрос, считая предыдущий файл устаревшим и требуя его обновить. Чтобы отловить этот баг, пришлось вклиниваться в процесс real-time и отслеживать, что происходит.
История 2: «Умирающее API»
На проекте для Орматек мы настраивали эквайринг от Сбербанка. Пришлось переписать официальный сберовский модуль (ай!), поскольку тот использовал старое API от старого ядра Битрикса, которое уже не поддерживается. Теперь пользуемся только своей версией модуля на проектах. Хотя, конечно, это проблема, скорее, Сбербанка, чем Битрикса :)
История 3: «Фильтры Шрёдингера»
На сайте магазина мебельной фурнитуры КДМ нужна была фильтрация по наличию — её реализовать штатными средствами Битрикса нельзя. Чтобы это условие выполнялось, мы написали кастомное решение. А вот учёт геопозиции при фильтрации по цене всё-таки сделали с помощью штатного фильтра, хотя и пришлось повозиться.
Главная боль любой CMS и шаблонного решения — безопасность и стоимость владения. Из-за популярности готовых движков их ломают чаще всего. «Дыры» в самом коде и сторонних модулях находят регулярно. К тому же, вам придётся постоянно тратиться: платить за продление лицензий (если движок платный) и накатывать обновления. А после каждого апдейта — проводить полное тестирование и чинить то, что внезапно отвалилось из-за изменений в ядре.

Из всего вышесказанного можно вывести лишь одно правило: Битрикс продуман под многие сложные задачи, но в какой-то момент вам этого не хватит. Можно ли будет вылезти за рамки стандартной коробки? Да, и дальше мы расскажем, как именно.

CMS + Framework

Значительная часть наших проектов сделана на Битриксе — +100 к удобству клиента, если он раньше пользовался этим движкой, и определенная прибавка к скорости разработки. Но сложные штуки (множество форм, профили, личные кабинеты или непростая бизнес-логика) он всё-таки не тянет, поэтому почти всегда подключается популярный фреймворк — мы используем Laravel. Данные при этом привычно управляются из админки Битрикса.
Мы не афишируем это как какую-то отдельную услугу или «экзотическую склейку», для нас это давно отработанный внутренний стандарт разработки сложных e-commerce проектов. Мы берем от Битрикса его сильные стороны — структуру хранения каталога и готовую, удобную для контент-менеджеров админку, чтобы не писать ее с нуля. При этом кастомную логику и «тяжелые» модули мы пишем с нуля на Laravel.

Всё просто: если нам нужны вещи, которые не умеет Битрикс — значит нам нужно в ЛЮБОМ СЛУЧАЕ писать код. Иногда — много кода. Так пусть уж он будет хорошо-структурированным, стандартизованным, в классическом MVC-стиле, с коллекциями, роутерами и легко читаться профессионалами.
  • Плюсы CMS + Framework: Менеджерам удобно работать в привычной админке, а система получает колоссальную гибкость — можно реализовать сложную логику и скорость разработки (по сравнению с чистым фреймворком).
  • Минусы CMS + Framework: Высокий порог входа — нужны кодеры с прямыми руками. С безопасностью здесь всё ещё есть нюансы: угроза взлома остаётся, так как мы используем код от CMS, но риски уже значительно ниже.

Чистый фреймворк: большое делается по-взрослому!

Это предпочтение большинства программистов. А также большинства технических директоров на стороне клиента. Скорость, гибкость, власть над кодом — все это дает нам хороший фреймворк (такой, как Laravel). А еще, разработку на фреймворке вы платите один раз — код полностью ваш, никаких ежегодных лицензий и сюрпризов после обновлений ядра.
Фреймворк имеет встроенные, регулярно обновляемые международным сообществом механизмы защиты от SQL-инъекций, CSRF-атак и XSS-скриптинга. Сайты на Laravel не ломают «массово по шаблону», как это происходит с популярными CMS.

На фреймворке можно реализовать как компактный корпоративный сайт, так и портал со сложной логикой.
Когда же нужен на самом деле фреймворк?
  • Масштабные личные кабинеты и b2b-порталы;
  • Высоконагруженные экосистемы и веб-сервисы со сложными тарифами и ролями;
  • Проекты с нестандартной бизнес-логикой, где e-commerce плавно перетекает в стартап;
  • Разработка API для мобильных приложений и сторонних ресурсов;
  • Высокие требования к безопасности;
  • Стойкая «аллергия» на Битрикс и любые другие CMS у самого заказчика.

Короче — что выбрать-то?!

Параметры Бесплатная CMS или конструктор Платная CMS
(1С-Битрикс)
CMS + фреймворк Чистый фреймворк
Тип проекта Лендинг, простейший сайт-визитка (который не жалко выкинуть, если что-то пойдёт не так). Простой корпоративный сайт, простой интернет-магазин. Корпоративный сайт, e-commerce с нетиповой логикой и личными кабинетами. Highload-сервисы, b2b-порталы, стартапы, экосистемы, ЛК и API, промо-сайты.
Позиция Сибирикс Не работаем принципиально. Работаем, если проект укладывается в базовые рамки и нет высоких требований к безопасности. Опционально, если оправдано. Наш фаворит для любых проектов.
Квалификация кодера Подойдёт и фрилансер, и студент, можете даже попробовать сами. Фрилансер, студия. Адекватная команда с хорошими компетенциями прямыми руками. Толковая и опытная команда.
Плюсы Бесплатно или очень дешево, быстро в реализации, много доступных готовых решений. Быстрый старт за счет готовых модулей. Удобное управление контентом при полной свободе в разработке логики. Чистый код, безопасность, отсутствие лицензий и ограничений, хорошая масштабируемость системы.
Минусы Уязвимость, сомнительное качество кода, плохая масштабируемость. Ограничения по бизнес-логике, траты на лицензии и поломки при обновлениях. Безопасность. Риски безопасности выше, чем на чистом фреймворке. Бюджеты и сроки разработки будут больше, чем на других платформах.
Параметры Бесплатная CMS или конструктор Платная CMS
(1С-Битрикс)
CMS + фреймворк Чистый фреймворк
Тип проекта Лендинг, простейший сайт-визитка (который не жалко выкинуть, если что-то пойдёт не так). Простой корпоративный сайт, простой интернет-магазин. Корпоративный сайт, e-commerce с нетиповой логикой и личными кабинетами. Highload-сервисы, b2b-порталы, стартапы, экосистемы, ЛК и API, промо-сайты.
Позиция Сибирикс Не работаем принципиально. Работаем, если проект укладывается в базовые рамки и нет высоких требований к безопасности. Опционально, если оправдано. Наш фаворит для любых проектов.
Квалификация кодера Подойдёт и фрилансер, и студент, можете даже попробовать сами. Фрилансер, студия. Адекватная команда с хорошими компетенциями прямыми руками. Толковая и опытная команда.
Плюсы Бесплатно или очень дешево, быстро в реализации, много доступных готовых решений. Быстрый старт за счет готовых модулей. Удобное управление контентом при полной свободе в разработке логики. Чистый код, безопасность, отсутствие лицензий и ограничений, хорошая масштабируемость системы.
Минусы Уязвимость, сомнительное качество кода, плохая масштабируемость. Ограничения по бизнес-логике, траты на лицензии и поломки при обновлениях. Безопасность. Риски безопасности выше, чем на чистом фреймворке. Бюджеты и сроки разработки будут больше, чем на других платформах.

Короткий итог

Универсальной «серебряной пули» не существует. Выбор платформы — это всегда баланс между вашими бизнес-задачами, планами на масштабирование и бюджетом:
  • Бесплатную CMS стоит оставить для простейших сайтов-визиток, которые в случае проблем будет не жалко заменить.
  • Платная CMS идеальна, если вам нужен быстрый и предсказуемый запуск классического интернет-магазина, логика которого на 90% укладывается в стандартные «рельсы» коробочной системы. Но не забывайте заложить бюджеты на покупку лицензии, обновления и поддержку.
  • CMS + фреймворк выручает, когда менеджерской части проекта нужна привычная админка для работы с товарами, а технической части — свобода для реализации нестандартных и тяжелых модулей.
  • Чистый Фреймворк жизненно необходим, когда создается уникальный highload-сервис, b2b-портал или стартап со сложной логикой, где критически важны абсолютная безопасность, независимость от лицензий и безупречная скорость работы.