С технической точки зрения любая функциональность может быть реализована или на CMS, или на фреймворке, или без использования каких‑либо платформ на чистом языке программирования. Однако некоторые проекты проще сделать на CMS, некоторые — на фреймворке, а разработка без использования платформ редко бывает рациональным решением с точки зрения бизнеса. В большинстве случаев, выбор платформы стоит основывать на экономических критериях. В статье приведены основные критерии, которые позволят принять обоснованное решение по этому вопросу.
Коробочные системы управления сайтами — CMS
Система управления сайтом — это программный продукт, который создан для упрощения создания основных видов сайтов. Как правило, системы управления достаточно универсальны, то есть на них можно собрать что угодно: от информационного сайта до интернет-магазина или портала.
Эта платформа подходит для создания сайтов как простых, так и средних по сложности. На внешний вид публичной части сайта (на то, что видит обычный пользователь) CMS никаких ограничений не накладывают.
Виды CMS
Есть две разновидности CMS — коробочные (готовый программный продукт, который можно скачать или купить) и самописные (которые можно получить только от разработчика). Здесь мы рассмотрим только первые, так как вторые обычно представляют из себя просто тиражирование разработчиком однажды написанного проекта: отсюда проистекают проблемы с архитектурой, отсутствие документирования программного кода и, как следствие, модернизация и поддержка таких решений обычно весьма сложна.
Также мы не будем в этой статье рассматривать Headless CMS — это относительно новый класс CMS систем, разработка на которых по принципам ближе к фреймворкам.
Краткий перечень известных CMS
Платные коробочные CMS: 1С-Битрикс, UMI.CMS, NetCat, CS-Cart
Бесплатные коробочные CMS: WordPress, ModX, Drupal, Joomla, OpenCart, PrestaShop, TYPO3, Magento (open-source версия Adobe Commerce)
Подавляющее большинство коробочных CMS написано на PHP и использует СУБД MySQL.
Плюсы разработки на коробочных CMS
На CMS достаточно просто и быстро можно создать те виды сайтов, которые заложены в функциональность этой системы. При этом разработка простых решений часто даже не требует участия в проекте программиста.
Многие бизнес‑процессы, которые нужны для конечных пользователей или требуются для управления сайтом, уже заложены в функциональность CMS. Например, в рамках встроенной функциональности сайт на CMS уже «умеет» редактировать страницы и управлять их структурой, управлять пользователями системы и их уровнем доступа, сортировать и фильтровать различные объекты и многое другое.
Поддержка сайтов на CMS проще, чем работа с системами написанными «с нуля»: этому способствует как наличие документации, так и высокий профессиональный уровень разработчиков CMS, который находит своё отражение в логичной и понятной архитектуре системы.
Возможно простое масштабирование в рамках заложенной функциональности. Например, можно достаточно быстро добавить на информационный сайт каталог продукции, а затем сделать на базе каталога интернет-магазин.
Минусы разработки на коробочных CMS
Разработка простых решений на CMS обычно обходится дороже, а при ограниченном бюджете еще и результат получается хуже, если сравнивать с аналогичными решениями на базе SaaS‑конструкторов.
Реализация же нестандартной функциональности и тонкая настройка CMS под свои бизнес‑процессы обычно затруднена. Процессы, заложенные в системе, тесно связаны, поэтому модификация одного из них приводит к необходимости модифицировать и зависимые от него. А в некоторых случаях реализация специфической функциональности в рамках CMS является и вовсе невозможной. В этом разработка на CMS проигрывает решениям на фреймворках.
Обратной стороной универсальности CMS является избыточность функциональных возможностей и сопутствующие этому увеличение сложности управления и использования, а также некоторые проблемы с производительностью — сайт на CMS выполняет гарантированно больше операции с данными, чем того требует процесс, а структура хранения данных обычно «раздута» относительно реальных потребностей проекта. По удобству управления и по вопросам производительности сайты на CMS обычно проигрывают и SaaS‑решениям, и проектам на фреймворках.
Тематические статьи
При выборе конкретной платформы для разработки часто возникают сложности. Бывает непросто принять взвешенное решение, в этом случае будет полезен следующий алгоритм выбора.
- При возможности найти готовые решения или продукты — используйте их. В большинстве случаев, оптимальная стратегия выбора: «чем проще — тем лучше».
- Если у вас есть команда разработчиков, то прислушайтесь к их мнению. Важны как возможности самой платформы, так и наличие у команды опыта работы именно с этим технологическим стеком.
- Заранее оцените «заточенность» выбранной платформы под ваши задачи. Не стоит на 100% доверять маркетинговым материалам вендора платформы.
Фреймворки — это программные продукты, которые упрощают создание и поддержку технически сложных или нагруженных проектов. Фреймворк — это сочетание готовых программных компонентов с методологией их использования, облегчающее разработку программного продукта. Благодаря использованию фреймворков достигается не только высокая скорость разработки, но и большая производительность, безопасность и надёжность решений.
Универсальная коммерческая CMS. Достаточно монструозная, хотя при должной настройке на этой платформе можно создавать весьма удобные в использовании и управлении сайты. Из российских платных CMS наиболее дорогая, но и наиболее распространённая.
Rails — это прежде всего среда разработки, которая великолепно подходит для создания любого типа веб‑приложений: систем для управления веб‑сайтами и платформ для ведения электронной торговли, программ для организации совместной работы и для веб‑сервисов для осуществления коммуникации, для учетных и ERP‑систем, статистических и аналитических систем.