Разное

CMS и Framework — так в чем же разница?

2.07.2020

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

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

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

О Content Management System (CMS)

Что же такое CMS? Нет, это не детектор Великого адронного коллайдера (хотя у него такая же аббревиатура). CMS — система управления содержимым, которая помогает легко администрировать web-ресурс при помощи пользовательского интерфейса, не прибегая к навыкам программирования. Зачастую, такие системы “из коробки” включают в себя достаточно широкий набор различных функций и возможностей. Обычно, разработчики CMS-систем создают усредненный “портрет” стандартного web-сайта и стараются внедрить функции необходимые при большинстве стандартных задач. Есть профильные системы, которые создаются под определенный конкретный тип web-ресурса (интернет-магазин, блог, лендинг), а есть универсальные – те, которые стремятся покрыть базовый спектр потребностей вне зависимости от типа ресурса.

CMS рассчитаны на массовое использование, а не на индивидуальное, если так можно выразиться. То есть, они создаются, чтобы подходить всем, а не конкретно вам. Часто, в этом и состоит основное разочарование при первом использование подобных систем. Ведь главный маркетинговый посыл звучит так: “Создай сайт самостоятельно” или “Создай свой сайт за 5 минут”, чем соблазняет многих людей осуществлять попытки самостоятельно изучения и создания сайта самостоятельно и  бесплатно, не прибегая к помощи профессиональных разработчиков.

Мы не знаем точной статистики, но, кажется, по субъективным наблюдениям, 95% процентов подобных попыток увенчаются провалом. Настолько, насколько быстро приходит эйфория от того, что “сайт можно сделать самостоятельно и бесплатно”, настолько же и быстро приходит разочарование при проведение первых экспериментов. Даже, если человеку удается самостоятельно запустить и настроить что-то похожее на web-сайт, быстро становится понятно, что это, мягко говоря, не совсем то, что нужно. В этом и состоит основной негативный аспект сайта на CMS “из коробки” или “своими руками”. Такие сайты для всех и не для кого. 

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

Примеры популярных CMS: Drupal, WordPress, Joomla и др.

Благо, фреймворки, иллюзии простоты и общедоступности никогда и не строили, ведь это совсем иное. Если CMS позиционируют себя в первую очередь как продукт для пользователей (администраторов, владельцев сайта), то фреймворки – это продукт для разработчиков.

В чем же отличие Framework от CMS? 

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

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

Фреймворки, так как и библиотеки, – это определенный код. Он может быть большим или маленьким по объему, а его автором могут быть как сторонние программисты, так и вы сами. Если в библиотеке (library) нам предлагается не что иное как "кусок кода", который берется для наших целей, то обычно нам предоставляется только одна функциональная возможность. Это, например, либо работа с картинками, либо с аудиофайлами, то есть одна функция определенного типа. Фреймворк же — это рамка подобная каркасу, структура программной системы, облегчающая разработку и объединение разных компонентов большой программы. В каркас кода мы вставляем фреймворк и подключается сразу несколько различных функций, при этом ядро фреймворка остается неизменным.

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

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

Плюсы CMS

  1. Хорошо подходят для сайтов-визиток, лендингов и прочих малонагруженных систем, основное наполнение которых состоит из текстовой информации и изображений

  2. Предоставляют уже готовую систему управления контентом (админку), что в малых проектах может сократить внушительную часть работы

  3. Имеют широкий набор готовых решений: плагинов, виджетов и визуальных тем оформления, которые позволяют расширять функциональность сайта “малой кровью”

  4. Не требовательны к квалификации разработчиков. Часто, вы сможете найти низкооплачиваемого работника на фрилансе для реализации той или иной частной модернизации 

Минусы CMS

  1. Для реальных проектов, обычно, недостаточно системы “из коробки”. Обычно, требуется доработки, которые сделают из “потенциального” web-сайта – “реальный”

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

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

  4. Низкая квалификация разработчиков – опять же, плюс и минус в одном “лице”. Если вы прибегаете к помощи низкоквалифицированных работников, которых полно на рынке CMS, вы часто сталкиваетесь с недобросовестным отношением к вашему проекту. Обычный подход, это выполнить задачу как можно быстрее, любым доступным способом. Так же, это бездумная установка плагинов, а далее… плагинов на плагины и плагинов на плагины плагинов и т.д. до бесконечности. Это делает из проекта какую-то ужасную свалку с “окрашенной травой зеленой краской” или “дверными ручками, которые держатся на пластилине, до первого использования”. В итоге, проект, который вы долгие годы развивали – умирает, так как уже не может справляться с нагрузками, тормозит, а за новые дополнения и улучшения уже никто не хочет браться и предлагают вам разработку сайта с 0.

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

Плюсы Framework

  1. Хорошо подходят для средних и больших проектов, справляются с большими нагрузками, способны показывать высокую скорость работы. Также, не противопоказаны и для малых проектов.

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

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

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

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

  6. Ну и резюмирующее преимущество, которое вытекает из сочетания всех вышеописанных. Используя фреймворк вы вряд ли услышите “это невозможно сделать” или “нет, так не могу, могу сделать немного по другому”. Ведь фреймворки это идеальная площадка для реализации любых фантазий и идей. Тут можно все: от малого до великого. 

Минусы фреймворков

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

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

  3. Более высокая средняя стоимость специалистов по сравнению со специалистами разрабатывающими на CMS

Выводы:

Разница между CMS и Framework достаточно велика и прямое их сравнение даже не совсем корректно. По позиционированию и зонам применения, скорее надо сравнивать CMS с Конструкторами сайтов, а Фреймворки с “кодом с 0”. Однако, данное сравнение (CMS vs. Framework) все таки наиболее часто можно услышать из уст клиентов, поэтому мы и постарались провести сравнительно-описательный анализ двух систем для вас. 

Делая выводы, скажем, что только при наличии разницы в цене рационально делать выбор в пользу CMS, по всем другим критериям явным лидером в данном противостоянии являются Фреймворки. Если же ваш проект изначально невелик, но вы планируете развивать и расширять его в дальнейшем, крайне советуем вам смотреть в сторону фреймворков. Ведь для небольшого проэкта разница в цене при разработки на ЦМС и Фреймворке не должна быть велика. По нашим наблюдениям она может составлять от 10 до 40%. Скажем даже больше, если вы планируете развиваться до внушительных масштабов, вам в любом случае придется прийти к фреймворкам рано или поздно. Только в одном случае вы потратите деньги впустую, чтобы потом начать все заново, а в другом – вы будете расширять имеющийся проект и каждая копеечка будет к месту и будет учтена.

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