CMS или FRAMEWORK?

16 March 2018   |    Nikita Pazin   |    Development

Перед выбором “движка” для вашего ресурса важно определиться с тем, как он вписывается в вашу инфраструктуру. На выбор решения также влияет методика, по которой проект будет разрабатываться.

К крупным мы относим проекты, отвечающие минимум одному из этих критериев:

  • Кол-во SKU для каталога: более 20000
  • Посещаемость: более 1000 чел в сутки
  • Объем данных ресурса: более 20 Гб
  • Интеграции в проекте: более 3
  • Перспектива достижения одного из этих показателей в течение года

В любом случае при выборе платформы для решения важно учитывать следующие возможности:

  • Поддержка БД, подходящей для вашего проекта
  • Возможность внедрения API для мобильного приложения

Для того, чтобы было проще разобраться, давайте введем условное деление.

Самостоятельный крупный проект

В этом случае наиболее эффективным будет разработка на Framework по методологии Agile и при наличии ответственного подрядчика. При таком подходе расходы становятся прямо пропорциональны функционалу проекта.

Крупный проект как часть общей IT-инфраструктуры компании

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

Один из небольших проектов компании

В данном случае компании стараются унифицировать используемые решения, но свобода выбора остается, и для подобных задач как раз и разработано большинство CMS.

Небольшой проект, рассчитанный на решение локальной задачи

Для некоторых задач можно обойтись CMS без базы данных, Wix, или сайты Битрикс24 (которые недавно анонсировали возможность создания интернет-магазина). Но возможно и использование простых редакций популярных CMS.

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

В чем отличия CMS от Frameworks

В основном проекты реализуются на PHP CMS (Content Management System - cистема управления контентом) и на Frameworks ( являющимися надстройками над языком программирования). Некоторые студийные CMS разрабатываются на фреймворке и получают свое название (например Alchemy Yii 2 CMS и SEOCMS на Yii 2).

"И если CMS похожа на Лего, то framework можно сравнить с 3D принтером – печатай что угодно, хоть тот же конструктор!"

Отдельно стоят решения, реализованные на ASP.NET от Microsoft, но данная платформа не получила широкого распространения на нашем рынке.

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

CMS

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

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

Бесплатные CMS не подходят для серьезного бизнеса

Вопрос цены - вопрос рисков. Да, технически на бесплатных CMS можно реализовать крупный коммерческий проект. Но в стоимость лицензии какой-либо коробки, как правило, входят определенные гарантии безопасности, надежности и тех. поддержка от разработчика.

Готовые системы управления контентом «тяжелые», а сайты, написанные с нуля, «легкие»

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

Преимущества CMS:
  • Скорость. Если вам нужно стандартное решение, то шаблон с базовым функционалом можно создать за короткое время (несколько дней).
  • Простота. Работа с CMS не требует от администратора большого опыта в разработке.
  • Схожесть. Функционал разных CMS перекликается друг с другом, поэтому, разобравшись в одной системе, проще будет работать и в остальных.
  • Доступность. Благодаря скорости создания шаблона, результат получается сравнительно недорогим.
  • Специализация. Существуют специализированные CMS под определенный тип проекта (новостной портал, интранет и т.п.), и они вполне могут справиться с основными вашими задачами. Как минимум, рекомендуем изучить их возможности, прежде чем разрабатывать проект с чистого листа. К сожалению, это не относится к e-commerce платформам.
Недостатки:
  • Ограниченность. Хоть у каждой CMS есть широкий функционал, большинство систем качественно решает весьма ограниченный круг задач. Зачастую приходится искать компромиссы и соглашаться с тем, что все ваши потребности не получится удовлетворить.
  • Шаблонность. Как мы и говорили, CMS – это один конкретный набор модулей, заточенный под некую идеальную задачу, и в тоже время не подходящий на сто процентов никому.
  • «Грязный» код. Некоторые CMS автоматически генерируют строки ненужного кода. А чтобы его почистить, потребуется немало сил и времени.
  • Обновления. При обновлении CMS часть ваших доработок может исчезнуть или перестать работать. И в том и в другом случае вам потребуется привлечение специалиста.
Стоимость решения

Мы считаем, что не стоит принимать решение, исходя из стоимости лицензии, т.к. она растворится в общих затратах на содержание и развитие проекта.

При построении диаграммы мы исходили из следующих цифр:

  • Средняя стоимость коммерческой лицензии 30000, ежегодное продление 10 000 р
  • Средняя стоимость ежемесячного тех. сопровождения на 12-16 часов - 25 000 р
  • Средний срок жизни проекта 3 года

Наиболее популярные решения

1С-Битрикс (БУС - Битрикс Управление сайтом)

Лидер по использованию среди платных CMS. Предоставляется на платной основе в различных редакциях. Функционально богатая система, к сожалению, наследовала все худшее, что есть в 1С. Если Apple предлагает некую новую парадигму, то в случае 1С и пользователю, и разработчику, приходится самому подстраиваться под существующие решения, ведь при изменении компонентов растет риск получить отказ в тех поддержке разработчика.

Преимущества:
  • Существенным плюсом служит Bitrix Marketplace, со множеством решений от сторонних разработчиков.
  • Большое количество студий и разработчиков.
  • Богатая базовая функциональность.
Недостатки:
  • Основным недостатком, на наш взгляд, является неприспособленность системы для дальнейшего развития. Время и бюджет, которое вы отводите на модернизацию, будут существенно превышены.
  • К отрицательным факторам использования 1С-Битрикс в качестве CMS можно отнести его не самую высокую нагрузочную способность. Пока ваш web-проект будет не слишком популярным все будет очень шустро работать. Но при превышении определенного уровня посещаемости начнутся тормоза, устранение которых потребует довольно много времени и сил.

Отдельно стоит отметить, что бизнес-модель Битрикс успешна для создателей, привлекательна для разработчиков, но не влечет за собой эволюционного развития продукта, и, как следствие, не отвечает интересам заказчиков. Большинств проектов реализуется на ней “по умолчанию”, не вдаваясь в тонкости системы. Характерной особенностью платформы является недолюбливание ее разработчиками.

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

WordPress

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

Преимущества:
  • Большой выбор готовых шаблонов различных тематик и стилей.
  • Распространенность CMS и невысокие требования к разработчику.
Недостатки:
  • Невысокая скорость работы сайта.
  • Уязвимость в самих скриптах CMS.
  • Конфликты между различными плагинами.

Не смотря на распространенность решения, мы не рекомендуем рассматривать ее в качестве платформы своего проекта.

Joomla!

Еще одна из наиболее часто используемых бесплатных CMS. Главное отличие Joomla! от более успешного Open Source решения – с ней чуть сложнее справиться. Ее не так просто установить, настроить и наполнить контентом.

Преимущества:
  • Для этой платформы существуют удобные многофункциональные приложения для создания интернет-магазинов разной сложности. Создать полнофункциональный интернет-магазин (а не одностраничник) на Joomla проще и быстрее, чем на Вордпрессе.
  • Сайт на Joomla! можно оптимизировать без дополнительных плагинов. Без лишних телодвижений пользователь может прописать мета-теги и настроить URL (адреса страниц, которые отображаются в строке браузера).
  • В движке сразу доступно кеширование. Это ускоряет загрузку страниц, повышает позиции сайта.
Недостатки:
  • Нестабильность работы при большой нагрузке.
  • Уязвимости в скриптах.
  • Cложность и избыточность программного кода, которая негативно сказывается на возможности нахождения и исправления ошибок.

Не смотря на распространенность решения, мы не рекомендуем рассматривать ее в качестве платформы своего проекта.

MODX Revolution/Evolution

Бесплатная CMS подойдет для разработки любого сайта: блога, форума, крупного портала, сервиса с онлайн-платежами и т.п.

Преимущества:
  • Можно выбрать много типов контента. То есть это может быть даже не HTML-страница, а, например, pdf-файл.
  • Безопасность. Сайты на MODX более защищенные, чем ресурсы на большинстве других CMS.
  • SEO без дополнительных модулей и настроек
  • Создание сложных многофункциональных интернет-магазинов с помощью Foxy Cart.
  • Поддержка мультиязычных сайтов.

Явных недостатков система не имеет.

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

OpenCart

Специализированная e-commerce СMS. Это идеальное решение для тех, кому нужен интернет-магазин как можно скорее и как можно дешевле.

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

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

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

Drupal

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

Преимущества:
  • Возможность строить многопользовательские веб-проекты без рисков нестабильной работы при больших нагрузках.
  • Достаточно высокий уровень безопасности.
  • Удобная базовая SEO оптимизация.
Недостатки:
  • Ограниченное количество шаблонов и русскоязычной документации.
  • Повышенное требование к оперативной памяти на стороне сервера, обычно не менее 128 МБ.
  • Не смотря на то, что сама CMS бесплатная функциональные темы для нее предоставляются на коммерческой основе.

Не смотря на распространенность решения, мы не рекомендуем рассматривать ее в качестве платформы своего проекта.

Umi.CMS

Коммерческая CMS, к сожалению, в последнее время теряющая свою популярность, но несмотря на это, все еще способная конкурировать с 1С Битрикс.

Преимущества:
  • Наличие штатных возможностей для интеграции с 1С и Яндекс Маркет.
  • Интересный подход к обеспечению безопасности сайтов на платформе UMI. На сайте umi-cms.ru есть страница, на которой можно провести анализ безопасности своего ресурса и автоматически (!) исправить основные уязвимости.
Недостатки:
  • Менее конкурентные расценки на продление лицензии и высокая стоимость обслуживания и развития.

Если у вас есть проверенные разработчики, знакомые с системой, и вам не близок Битрикс, то можем рекомендовать ее, как основу вашего проекта.

Фреймворки

Популярность фреймворков на территории рунета по опросу сайта habrahabr.ru

Популярность фреймворков в мире по статистике Google Trends

Laravel

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

Преимущества:
  • Создание сайтов любого уровня возможно благодаря огромной функциональности. Используя этот фреймворк можно реализовать проекты, предоставляющие возможность интеграции необходимого функционала в соответствии с индивидуальными требованиями и особенностями конкретного бизнеса.
  • Безопасность баз данных.
  • Исходный код изменяется с учетом нововведений в PHP и потребностей программистов. Свежие обновления помогают устранить ранее существовавшие проблемы и сделать фреймворк еще более удобным.
  • Масштабируемость.
Недостатки:
  • Документация достаточно сложная, поэтому новичку будет крайне сложно создать полноценный веб-сайт.
Symfony

Symfony единолично удерживает 3-е место по популярности среди фреймворков. Пользователю предлагается выбрать одну из 3 версий для профильной работы:

  • Standard Edition — для знакомства и выполнения общих задач. На ней основан дистрибутив Hello World Edition, который содержит ровно один скрипт оптимизации для дальнейшего использования в бенчмарках.
  • Symfony CMF — адаптация для разработчиков, работающих с CMS-системами.
  • REST Edition — оптимизация для работы с REST-архитектурой (интернет-магазины, поисковые системы и т.д.).

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

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

Yii во многих рейтингах преподносится как главный конкурент Symfony. Основания для этого действительно есть: оба языка работают с полным стеком, у обоих исходники на GitHub, оба достаточно качественно представляют шаблонную разработку. Однако в то время как Symfony предоставляет лишь модель и контроллер, в Yii реализована полноценное MVC-взаимодействие. Кроме того, интерфейс в Yii куда удобнее, генерация кода с помощью браузерного элемента Gii здесь немного мощнее, да и вообще по факту Yii позволит вам сэкономить больше времени на разработке, а приложение будет работать чуть быстрее.

Преимущества:
  • Простота установки.
  • Yii является полностью объектно-ориентированным фреймворком и использует все преимущества продвинутых PHP функций.
  • Yii framework можно легко настроить под свои нужды. Практически каждый компонент фреймворка является расширяемым.
  • Yii тесно интегрирован с Codeception.
  • Yii поставляется с компонентом Security, который предоставляет несколько методов для помощи в создании более безопасного приложения.
  • Yii дает нам несколько инструментов, которые помогают уменьшить затрачиваемое время на неприоритетные задачи и сконцентрироваться над основной задачей.
  • Легко настроить для лучшей производительности.
Недостатки:
  • Сильная связанность классов. Все в системе наследуется от CComponent. Доступ к моделям через статические методы, что позволяет их использовать даже там, где не нужно.
  • Интеграция шаблонизатора (Twig, Smarty) довольно слабая по сравнению с нативными шаблонами. А нативные использовать не охота.

Заключение

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

Another articles