Разработка сайта. Конструктор, CMS или framework?

Разработка сайта. Конструктор, CMS или framework?
Разработка сайта. Конструктор, CMS или framework?

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

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

Конструктор сайтов — программно реализованная сложная система для создания веб-страниц без знания языков программирования.


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, в зависимости от используемого языка программирования.