При разработке корпоративных сайтов на большинстве проектов мы используем фреймворки 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, если нужно делать индивидуальный качественный проект, который будет следовать последним тенденциям в разработке.