Выбор платформы: CMS или фреймворк?

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

По сути, любой сайт или веб‑приложение можно разрабатывать при помощи одного из трёх подходов:

CMS, фреймворк или всё писать «с нуля»?

Если провести аналогию со строительством дома, то подходы выглядят так:

  • CMS: Вы покупаете готовый типовой дом, а потом его незначительно достраиваете и делаете внутреннюю отделку.
  • Фреймворк: Вы покупаете кирпичи и доски, а затем приступаете к строительству дома по своему собственному проекту, используя лучшие архитектурные практики.
  • «C нуля»: Вы полноценно осваиваете технологии производства строительных материалов, находите и разрабатываете месторождение глины, делаете из неё кирпичи в самостоятельно построенной печи, параллельно с этим вырубаете лес для изготовления досок... Наверное, можно не продолжать.

Разработку «с нуля» стоит сразу отбросить, так как этот подход может быть правильным только в том случае, если создание проекта — это ключевая задача компании, времени под этот проект выделено крайне много, бюджет серьёзный и в команде проекта есть очень компетентные разработчики. Хорошие проекты «с нуля» пишутся очень долго, хотя этот подход позволяет создавать очень крутые решения.

CMS или фреймворк?

Писать что‑то на чистом языке программирования без использования платформ — это редко целесообразно по экономическим соображениям. Поэтому рассмотрим только варианты создания сайта на базе платформ.

Обзор вариантов

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

Под CMS тут мы имеем в виду обычные коробочные системы управления сайтами, а не Headless CMS, разработка на которых по принципам ближе к фреймворкам, о которых ниже.

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

Если возвращаться к приведенной выше аналогии, то «производство стройматериалов» — удел немногих, «покупка готового дома» оптимально подойдёт тем, кому эти готовые дома изначально нравятся, а «строительство из готовых материалов» лучше всего для тех, кто хочет что‑то особенное. То есть нерационально как покупать готовый дом и разбирать его на стройматериалы, так и собирать из стройматериалов то, что на рынке уже есть в готовом виде.

Критерии выбора

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

  • Функциональность, которая встроена в CMS, на фреймворке реализовывать дороже и дольше. Но разработка сложных функций на CMS или переписывание базовых процессов CMS стоят дороже и занимает больше времени, чем та же работа выполненная сразу на фреймворке.
  • Добиться от сложного проекта на CMS высокой скорости работы стоит дороже, чем сделать это на фреймворке. Аналогично обстоят дела и с масштабированием. То есть при высоких требованиях к устойчивости к нагрузкам, производительности или к отказоустойчивости выбирайте решения на фреймворках или закладывайте стоимость работ по оптимизации CMS в бюджет проекта.
  • Запуск первой пилотной (неполной) версии проекта на CMS всегда быстрее, чем запуск аналогичной версии на фреймворке. Если проект сложный, а сроки запуска «горят», то лучше либо выпускать «пилот» на CMS, а затем его затратно дорабатывать или параллельно с этим разрабатывать решение на фреймворке, либо расставлять приоритеты между сроками разработки и сложностью проекта (либо отказываться от сложных функциональных возможностей, либо увеличивать сроки).

Тематические статьи

Рекомендации по выбору CMS и фреймворков

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

  • При возможности найти готовые решения или продукты — используйте их. В большинстве случаев, оптимальная стратегия выбора: «чем проще — тем лучше».
  • Если у вас есть команда разработчиков, то прислушайтесь к их мнению. Важны как возможности самой платформы, так и наличие у команды опыта работы именно с этим технологическим стеком.
  • Заранее оцените «заточенность» выбранной платформы под ваши задачи. Не стоит на 100% доверять маркетинговым материалам вендора платформы.
Статья обновлена в 2021 году
Платформы для создания сайтов: CMS, фреймворки и SaaS‑решения

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

SaaS‑платформы еще часто называют «конструкторами сайтов». Основное преимущество этого варианта — весьма хороший уровень качества за очень небольшие деньги. Но кастомизация SaaS‑решений очень ограничена.

Система управления сайтом (CMS) служит для разработки стандартных разновидностей сайтов. Много небольших и средних сайтов строится именно на CMS‑платформах, так как это наиболее целесообразный с экономической точки зрения подход.

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

Статья обновлена в 2025 году
Системы управления сайтами — CMS

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

Статья обновлена в 2025 году
Фреймворк Ruby on Rails

Rails — это прежде всего среда разработки, которая великолепно подходит для создания любого типа веб‑приложений: систем для управления веб‑сайтами и платформ для ведения электронной торговли, программ для организации совместной работы и для веб‑сервисов для осуществления коммуникации, для учетных и ERP‑систем, статистических и аналитических систем.

Статья опубликована в 2019 году