При разработке корпоративных сайтов на большинстве проектов мы используем фреймворки Symfony или Node.js. Часто такие решения вызывают вопросы у клиентов.

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

Для того, чтобы развеять эти популярные мифы и сомнения, мы написали статью, в которой простым языком описали и сравнили CMS и фреймворки.

Что такое CMS и фреймворк?

CMS (Content Management System) — это система управления сайтом, на которой быстро можно разработать шаблонный сайт из готовых решений.

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

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

Плюсы CMS

  • Можно быстро стартовать. Если к утру нужен сайт, то можно использовать CMS. С фреймворками так не получится.
  • Если используется CMS, то можно посмотреть демонстрационную версию сайта и увидеть, как им управлять.

Минусы CMS

  • Сложность в создании индивидуальных решений. Любые изменения должны вписываться в архитектуру CMS. Например, даже изменение цвета кнопки может добавить проблемы. Для решения таких проблем создаются «костыли», т.е. решения в коде, которые ухудшают качество продукта и скорость работы.
  • Качество проекта. При работе с фреймворком разработчик сам выбирает технологии, которые следует использовать. При работе с CMS эти технологии заранее предопределены и разработчик должен уметь ими пользоваться. Поэтому программист, работающий с фреймворками, имеет разносторонний опыт и проект получается более продуманный.
  • Скорость. CMS содержит в себе компоненты, которые добавляют в код проекта дополнительные проверки. Фреймворк содержит только те компоненты, которые необходимы в проекте. Поэтому сайт на фреймворке работает быстрее.
  • Обновляемость. Проект, созданный на фреймворке не зависит от обновлений фреймворка. При обновлении проекта на CMS часть функционала сайта может перестать поддерживаться и потребовать дополнительных доработок.
  • Интерфейс. У CMS есть заранее созданный интерфейс, который сложно перенастроить. У вас будут даже те блоки и функции, которыми вы не пользуетесь. Система управления сайтом, разработанная на фреймворке, создана специально для проекта.
  • Стоимость. Большинство популярных в России CMS — платные, фреймворки — бесплатные.

Кратко о плюсах и минусах CMS и фреймворках

ФреймворкCMS
Скорость запускаСредняяБыстрая
Возможность посмотреть демо-версиюНетЕсть
Скорость работыБыстраяСредняя
Индивидуальные решенияЛюбые решенияЕсть сложности и ограничения
СтоимостьБесплатноЕсть как платные, так и бесплатные решения
Система управления сайтомРазрабатывается индивидуально, очень удобнаяСложная
Количество специалистов на рынкеНемного, но они качественныеМного, но много некачественных
ОбновляемостьПростая, не влияет на работу проектаСредняя, могут возникнут проблемы после обновления
ТехнологичностьСамые современные решенияУстаревшие технологии

На CMS проще найти разработчиков

Да, верно, поскольку количество разработчиков, например, на «1С-Битрикс» больше, чем на Symfony. Однако качество таких разработчиков хуже, поскольку порог вхождения ниже, требуется меньше квалификации, чем при работе с фреймворками. Таким образом, вы получаете больше неквалифицированных разработчиков.

Как другие разработчики будут работать с вашими решениями?

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

Основные выводы

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

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

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