Интернет-магазин. Что выбрать: CMS или Framework? / Студия Виталия Комлева, разработка веб-сайтов Харьков

Интернет-магазин. Что выбрать: CMS или Framework?

Веб-дизайн и аналитика

Считаем плюсы и минусы CMS и фреймворков.

Доставайте лист бумаги и карандаш, рисуйте табличку на две колонки. В шапке для первого столбца пишем заголовок «CMS», а второй столбец подпишем «Framework». Нам понадобится 5-7 минут на то, чтобы понять, что CMS хороши только для бюджетных решений сугубо стандартных задач, тогда как фреймворк подарит полную свободу действия. Но не испугает ли нас выставленный счет?

Если вкратце, то CMS (англ. Content Management System — «система управления содержимым сайта») — это готовое решение для определенного типа задач. Такие системы разработаны как для интернет-магазинов (например, Битрикс и OpenCart), так и для блогов (WordPress, Joomla), для корпоративных сайтов (Drupal) и так далее.

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

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

В то же время Framework (англ. «каркас») — это не готовая программа, а набор инструментов, которыми пользуется программист при разработке CMS. И если CMS оперирует такими общими модулями, как «Новости», «Каталог товаров» или «Корзина», то фреймворк содержит базовый инструментарий, как, например, модули для работы с базой данных, для управления файлами, модули безопасности и так далее. Например, система управления для интернет-магазинов Magento разработана на базе Zend Framework. Однако большинство популярных CMS написаны без использования общедоступных фреймворков.

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

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

Перспективы проекта

Если Вы готовы автоматизировать процесс работы менеджера с клиентом, заниматься оптимизацией пользовательских сценариев, ставьте фреймворку 10 баллов — это будет игра на его домашнем поле. Конечно, CMS тоже можно будет заставить работать так, как Вам хотелось бы, но не придется ли для этого «разобрать» полсайта? Этого нам не гарантируют. Но мы все же можем поставить CMS 5 баллов, учитывая многообразие доступных для них модулей. Ставить ли? Решать Вам.

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

Сроки не оставляют поля для маневра? Ставьте 10 баллов для CMS, это ее конек. Для фреймворка есть только одно спасение — использование готовой CMS с базовым функционалом (например, как Magento или Evora в трех комплектациях) для быстрого запуска, с дальнейшей проработкой деталей. Если Ваша ситуация все же не столь критична, можете поставить в колонку фреймворка 5 баллов. Утешительный приз.

Скорость работы и расширяемость

Узким местом для многих систем (как cреди популярных CMS, так и среди специальных разработок) является оптимизация под высокие нагрузки. Часто требуется вручную ускорять работу скриптов, внедряя специальные алгоритмы или переписывая отдельные модули заново. Готова ли Ваша CMS к таким операциям? Ответ не столь очевиден, как это описано в рекламных проспектах. Фреймворки изначально ориентированы на специальные решения, а значит, их настройка будет более очевидна. Если Вы планируете высокие нагрузки на свой проект, ставьте 10 баллов для фреймворка. И еще 10 баллов, если Вы планируете настраивать импорт/экспорт из нестандартных источников данных, или же для данных большого объема.

Внешний вид и SEO

А как обстоят дела с общедоступной частью и поисковой оптимизацией? Здесь многие CMS смогут выйти вперед. Большое количество готовых тем оформления и относительно простая процедура внесения изменений в них позволяют добиться удовлетворительных результатов внешнего вида сайта относительно малыми затратами. Если Вы не готовы тратить время и бюджет на уникальный дизайн, ставьте 10 баллов для CMS. Фреймворки к таким требованиям не готовы.

Однако вопрос поисковой оптимизации не кажется столь же очевидным. Если речь идет об основных мета-тегах, то большинство CMS предоставит необходимый функционал для их редактирования. То же касается и аттрибутов тегов (alt, title и т.д.). CMS заслуженно получает 10 баллов. Однако для внедрения тех же тегов Open Graph понадобится писать специальное расширение. Если Вы планируете существенно расширять функционал работы с микроразметкой или специальными тегами, можете отметить 5 баллов для фреймворка — не пожалеете.

Считаем сумму

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