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

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

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

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

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

Поэтому рассмотрим только создание сайта на базе платформ:

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

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

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

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

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

Простые проекты проще, быстрее и дешевле делать на коробочных CMS, а сложные проекты эффективнее разрабатывать на фреймворках

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

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

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

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

Узнать больше →

SaaS — самое простое, быстрое и недорогое решение для старта простых проектов

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

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

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

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

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

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

Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов. 

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

Узнать больше →

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

Мы разрабатываем сложные сайты и веб-приложения на фреймворке Ruby on Rails.

Коробочные CMS не подходят для нестандартных сайтов или при наличии действительно высоких требований к быстродействию и устойчивости к нагрузкам. В этих случаях в качестве платформы для разработки выбирается фреймворк Ruby on Rails.

Если ваш проект требует реализации сложной бизнес-логики, должен работать быстро и быть рассчитан под высокие нагрузки, то Ruby on Rails в качестве платформы для разработки — это хороший выбор.

Узнать больше →

Мы специализируемся на разработке сложных проектов на Ruby on Rails и обладаем многолетним опытом в этом направлении. Разработка на Rails — отличный выбор для проектов со сложной бизнес-логикой и высокими требованиями к безопасности, надёжности и производительности.

Cтатьи по теме:

CMS — коробочные системы управления сайтами
Система управления сайтом — это программный продукт, который создан для упрощения создания основных видов сайтов. Как правило, системы управления достаточно универсальны, то есть на них можно собрать что угодно: от информационного сайта до интернет-магазина или портала.
Фреймворк Ruby on Rails
​Rails — это прежде всего среда разработки, которая великолепно подходит для создания любого типа веб-приложений: систем для управления веб-сайтами и платформ для ведения электронной торговли, программ для организации совместной работы и для веб-сервисов для осуществления коммуникации, для учетных и ERP-систем, статистических и аналитических систем.
Язык программирования Ruby
Ruby (ruby — рубин, руби) — интерпретируемый мультипарадигмальный язык программирования: динамический, объектно-ориентированный, рефлективный, императивный, функциональный. Активно используется в веб-разработке, в системном администрировании и в работе операционных систем (Mac OS X, Linux, BSD).
.NET Framework и ASP.NET — платформы для веб-разработки
.NET Framework — это программная платформа, выпущенная компанией Microsoft, которая подходит для разных языков программирования. ASP.NET — технология создания веб-приложений и веб-сервисов от компании Microsoft. Она является составной частью платформы Microsoft .NET и развитием более старой технологии Microsoft ASP.
Django — фреймворк на Python
Django — это программный каркас с богатыми возможностями, подходящий для разработки сложных сайтов и веб-приложений, написанный на языке программирования Python.
Почему стоит выбрать Ruby on Rails для разработки веб-приложения или сайта?
Разработку веб-проектов на текущий момент экономически целесообразно вести на одном из следующих языков: PHP, Java, Ruby, а также на Python и на базе .NET (это мультиязычный фреймворк). И каждый из языков имеет далеко не по одному фреймворку, написанному на нём. Так в чём же преимущества выбора языка программирования Ruby и фреймворка Ruby on Rails с точки зрения бизнеса?
Серверные языки программирования
Серверные языки программирования нужны для реализации бизнес-логики, то есть разработчик при помощи языка программирования описывает возможные сценарии использования сайта или приложения.

Тематические технологии:

Язык программирования Ruby
Фреймворк Ruby on Rails
Язык программирования Elixir
Фреймворк Phoenix
Язык программирования Python
Язык программирования Go
Websockets
Система управления сайтами 1С-Битрикс