Для начала стоит ответить на вопрос, что же значат все эти слова, которые мы вынесли в заголовок. Несколько простейших поисковых запросов в Яндекс выдали нам следующий результат:
Конструктор сайтов — программно реализованная сложная система для создания веб-страниц без знания языков программирования.
CMS (англ. C ontent M anagement S ystem) ― это система создания и управления сайтом. Это визуально удобный интерфейс, с помощью которого можно добавлять и редактировать содержимое сайта.
Веб-фреймворк - фреймворк, предназначенный для создания динамических веб-сайтов, сетевых приложений, сервисов или ресурсов. Он упрощает разработку и избавляет от необходимости написания рутинного кода. Многие фреймворки упрощают доступ к базам данных, разработку интерфейса, и также уменьшают дублирование кода.
Для людей, не связанных тесно с IT и веб разработкой может показаться что разницы нет никакой, но это не так и выбор технологий для разработки сайта зависит от нескольких параметров:
-
Сложность проекта
-
Варианты масштабирования
-
Удобство администрирования
Конструктор для интернет магазина
Давайте разбираться дальше. Представим гипотетического заказчика на интернет-магазин. Магазин выглядит так: 2 категории товаров, 200 товаров, корзина, возможность оформить заказ, личный кабинет. Это стандартный функционал любого интернет-магазина. Какой из вариантов разработки нам подходит? Ответ простой: любой. Тут клиент может выбирать по бюджету и рассматривать предложения от любых студий, с такой задачей справится любой веб-разработчик, особенно, если просто соберет сайт на конструкторе.
Развитие сайта
Но через пол года работы интернет-магазина возникает вопрос масштабирования и продвижения в интернете. Например заказчик хочет добавить еще 5000 товаров, настроить выгрузку товаров из Мой склад, подключить программу лояльности с накоплением баллов, сделать доставку СДЭК и почтой России, а так же подключить эквайринг и сделать выгрузку XML фида в Яндекс.Маркет. И тут выясняется что сайт на конструкторе такого просто не умеет и нужно все переделывать. С нуля.
Было досадно терять деньги, но заказчик решил переделать свой интернет магазин, например, на Wordpress. Нашлась веб-студия, которая выполнит данный проект, недорого и быстро. Все отлично, сайт работает, приносит доход и успешно прокачивается как в рекламе, так и в поисковой выдаче. Но проходит год и снова возникает вопрос масштабирования — нужно сделать двухстороннюю синхронизацию с маркетплейсами, подключить еще несколько систем лояльности, добавить возможность смс оповещений.
На этом этапе снова приходит понимание что основа сайта в виде CMS Wordpress не подходит для такого масштабирования. Во-первых, найти специалиста такого уровня работы с этой CMS практически нереально, так как они все загружены. Во-вторых, стоимость доработки такого проекта может превысить все мыслимые пределы.
В итоге для того, чтобы сделать сайт, удовлетворяющий все потребности бизнеса, потребовалось 3 раза сделать его заново. Потрачено огромное количество нервов, времени и денег. Как же этого избежать?
Нужно придерживать трех правил:
1) Простой сайт без нестандартных функций и дизайна, без сторонних интеграций на которые нет готовых решений — не имеет значения на чем его делать. Подойдет конструктор, CMS или разработка с нуля. Тут все решает бюджет проекта
2) Нагруженный разным функционалом сайт, но на каждую функцию есть готовые решения (эквайринг, доставка и т. д.) - выбираем хорошую CMS и разрабатываем на ней.
3) Нестандартный дизайн, сложный и нигде ранее не встречающийся функционал (например сложная система лояльности), желание развивать и дополнять функции сайта постоянно — разрабатываем с нуля, используя только фреймворки, такие как Yii2, Laravel, Django, в зависимости от используемого языка программирования.