Сайт на CMS, фреймворке или собственная разработка — что лучше?
Егор Косолапов из Uplab сравнивает разные варианты: разработку на чистых языках программирования, фреймворках, самописных и массовых CMS.
Чего хочет заказчик, когда обращается в агентство? Чтобы ему сделали сайт. Каким образом — вопрос второстепенный. Главное, чтобы в бюджет уложились, всё работало как задумано, а идеально — ещё лучше. Как задумано — значит удобно для пользователей, легко в управлении и безопасно.
У подрядчика в ответ на запрос клиента масса предложений. Рассмотрим, в каких случаях есть смысл создавать сайт на массовой CMS, а когда лучше пойти по пути уникальности.
Все сайты делятся на два типа
- Созданные на CMS — системах управления сайтом (неважно, самописных, бесплатных или массовых коммерческих).
Эффективная и выгодная реклама с сервисом от МегаФона
Широкий выбор рекламных каналов, более 100 параметров по интересам, подробная аналитика и другие возможности уже ждут в Личном кабинете. А еще кешбэк 100% за запуск рекламы в первый месяц и еще 10% — каждый месяц.
- Сайты, функциональность которых задаётся программистами. Специалисты могут использовать только языки программирования или работать с фреймворками.
Сайт состоит из внешней и внутренней части. Внешняя — это дизайн и контент, внутренняя — это база данных и административная панель. При разработке сайта на CMS необходимо создать только внешнюю часть — дизайн, сверстать его и «натянуть на движок». А при самостоятельной разработке придётся создавать и всю начинку.
Промежуточный вариант, который совмещает оба метода, — самописные системы управления контентом. В этом случае сначала с нуля создаётся скелет функций, а затем решение становится типовым, и уже на его основе создаются похожие сайты. Как правило, самописные CMS используются для решения довольно узких задач.
Проведём аналогию с автомобилем
- Собственная разработка — это создание машины с нуля, изобретение.
- Разработка на фреймворках — сборка машины с помощью готовых работающих узлов и запчастей.
- Сайт на самописных CMS — авторский автомобиль, который затем воспроизводится.
- Сайт на массовой CMS — универсальный серийный автомобиль промышленного производства.
По сути, мы видим переход от штучного продукта к рыночному, от индивидуального — к массовому производству. Причём у каждого варианта свои преимущества и недостатки.
Массовая CMS
Системы управления контентом, которые созданы компаниями-разработчиками, бывают как платными, так и бесплатными.
Бесплатные CMS ограничены по набору функций и технической поддержке, обычно используются для создания личных или небольших корпоративных сайтов. Нередко имеют проблемы с безопасностью, поэтому для создания серьёзных проектов не рассматриваются.
Коммерческие CMS — это мощные, универсальные системы для разработки разных типов сайтов с защитой и техподдержкой.
Когда подходит
- Вам не нужны специфические функции.
- Проект не предполагает высокой нагрузки.
- Ограниченный бюджет.
- Сжатые временные рамки.
- Нужен простой и понятный инструмент.
На массовой CMS можно создать все основные виды сайтов. Большинство систем состоит из модулей. Наборы таких модулей составляют редакции сайтов: корпоративный сайт, визитка, каталог, интернет-магазин, блог, портал и так далее. Это самый распространённый и простой способ сайтостроения.
Преимущества
- Легко изучить и настроить стандартный сайт. Не нужно знать языки программирования.
- Подключаемые модули. Можно расширять возможности за счёт плагинов.
- Быстрая скорость разработки. Основная часть работы уже сделана, от вас нужен контент, дизайн и настройка.
- Техническая поддержка. Компании-разработчики поддерживают собственные продукты.
- Полноценная документация. Для массовых коммерческих CMS легко найти всю сопутствующую документацию.
- Есть API. Готовые платформы имеют проработанный интерфейс прикладного программирования, который позволяет интегрировать ресурс с другими сервисами.
У готовых платформ, как правило, есть интерфейс прикладного программирования, который содержит много классов, структур, функций и прочих элементов. Всё это позволяет интегрировать ресурс с внешними программными сервисами.
Недостатки
- Ограниченная функциональность. Как правило, у каждой CMS своя специализация, которую, впрочем, можно расширить за счёт редакций.
- Невысокая производительность. Это плата за универсальность. В движке заложены широкие возможности, что дополнительно нагружает сервера.
- Избыточность некоторых модулей. Бо́льшая часть возможностей может вообще не использоваться.
- Уязвимость. Поскольку основная масса коммерческих сайтов сделана на популярных коробочных версиях CMS, именно на них направлены атаки.
Самописная CMS
Далее рассмотрим системы управления контентом, разработанные отдельным программистом или студией. Это аналоги массовых CMS, но имеют небольшое распространение, даже если продаются. Могут создаваться на заказ.
Если массовые CMS — это универсальные решения, то самописные версии — продукт индивидуальной разработки. Обычно заточены под решение конкретных задач.
Когда подходит
- Готовые решения вам однозначно не подходят.
- Вы уверены в разработчике самописного движка.
- У вас есть время и деньги на разработку.
Самописные CMS чаще используют для специфических проектов, когда требуется повышенный уровень безопасности, гибкость или, наоборот, простота в работе. Примером могут служить движки, разработанные для онлайн-СМИ. Они лишены громоздкости массовых систем и при этом могут обладать функциями управления контентом, которых нет в обычных движках.
Такие CMS очень кастомизированные. Как правило, обладают специальным интерфейсом, который удобен для редакторской работы. В этом случае переделка обычной CMS обошлась бы дороже и велась бы дольше, нежели собственная разработка.
Преимущества
- Можно продумать функции сайта под конкретный проект.
- Нет плагинов и расширений, которые требуют обслуживания и утяжеляют сайт.
- Ниже вероятность взлома, исходный код будет только у вас и разработчика.
- Выше производительность, поскольку нет лишнего кода.
- Проще управление — можно включить только те элементы, которые вам необходимы.
Недостатки
- Привязка к конкретному разработчику. Все обновления и техподдержку придётся проводить через него.
- Высокая стоимость проекта. Придётся оплачивать услуги опытных программистов или студию.
- Качество продукта полностью зависит от квалификации исполнителя, а грамотных и опытных профессионалов найти сложно.
- Зачастую нет полноценной документации, поскольку проекты изначально строятся под заказ и не рассчитаны на массовое использование.
- Сложности с технической поддержкой. Если исполнитель вдруг пропадёт, вы столкнётесь с большими проблемами.
- Нет API. Для любой интеграции придётся создавать уникальные решения, что выльется в затраты времени и финансов.
Разработка на фреймворках
В переводе с английского framework — каркас, остов, структура. В разработке это готовая надстройка над «чистым» языком программирования. Фреймворк выполняет две задачи: задаёт архитектуру и позволяет подключать дополнительные модули и пакеты, за счёт чего можно расширять функциональность проекта.
Фреймворк — это набор отлаженного кода для решения конкретных задач, которые чаще всего стоят перед разработчиками. Если при разработке на CMS вы отрезаете все лишнее, то здесь всё наоборот: «лепите» сами из готовых блоков. Во многих случаях такой подход является более эффективным и оправданным.
На основе фреймворков можно разработать отдельное веб-приложение, сайт и даже CMS. Фреймворки существуют для всех языков программирования, бывают самописными и студийными. Наиболее популярные представители: Yii, Zend Framework, Symfony2, Laravel, Phalcon, Codeigniter, Kohana.
Когда подходит
- Проект с высокой нагрузкой — когда производительность сайта критически важна.
- Необычный, нешаблонный проект. Тот случай, когда лучше создавать что-то самому, чем переделывать.
- Проект будет активно изменяться и подстраиваться под тренды и ваши потребности.
- У вас, как у заказчика, достаточно опыта и есть чёткое понимание, каким должен быть проект и его особенности.
Разработка на фреймворках сложнее, чем на CMS, и требует высокой квалификации как от разработчиков, так и от заказчика. Необходимо подобрать специалиста, оценить его опыт и чётко поставить перед ним задачи. Гибкость разработки на фреймворках открывает массу возможностей, но между тем приносит определённые сложности.
Преимущества
- Высокая производительность. Меньше лишних элементов — быстрее работа.
- Большая степень индивидуализации для решения конкретных задач.
- Отлаженный код и безопасность. Фреймворки постоянно тестируют на ошибки.
- Гибкость. Можно легко решать даже нестандартные задачи, при этом разными путями.
- Доступность дополнений. Можно использовать в работе готовые пакеты и библиотеки.
Недостатки
- Сложность — разработчику необходимо обладать высокой квалификацией.
- Нет административной части — раздел редактирования нужно создавать самостоятельно.
- Нужно много времени — сроки значительно увеличиваются.
- Высокая стоимость разработки.
- Дорогое обслуживание. Развитие сайта также будет стоить дороже, поскольку каждый раз придётся привлекать специалистов.
Собственная разработка
Под собственной разработкой понимается создание сайтов на языках программирования, например, на чистом HTML или PHP. При этом вся функциональность прорабатывается с нуля.
Когда подходит
- Вам нужен уникальный нетипичный проект, а время на его разработку не ограничено. Разрабатывать сайт полностью с нуля оправдано, когда вы создаёте что-то нетипичное, чего нет на рынке, и уверены, что затраты окупятся. Возможно, это проект, на котором планируется обработка огромного количества данных и сверхсильные нагрузки.
- Сайт должен стать конкурентной фишкой компании. Если вы хотите внедрить на сайт уникальную и сложную функциональность. Например, у вас интернет-магазин: чтобы отличаться от конкурентов, вы планируете внедрить поиск товара по картинке или ссылке. Или хотите удивить пользователей тем, что они могут покупать товары с помощью голосового интерфейса.
Преимущества
- Вы получите набор функций, о котором пожелаете.
- Высокая производительность.
- Полный контроль разработки.
- Свобода творчества — вы ограничены только возможностями языка разработки.
Недостатки
- Большие временные затраты.
- Требуется высокая квалификация и опыт разработчиков, поскольку им придётся создавать все с нуля.
- Нужен большой бюджет.
Чтобы владеть чем-то уникальным, нужно вложить много ресурсов. Без команды опытных программистов — никуда.
Идеально, если вы готовы держать собственный штат разработчиков, которые в любой момент смогут исправить ошибку, доработать функцию или внедрить новую.
Хорошо, если у вас есть бюджет на агентство. Однако в последнем случае процесс становится не столь гибким. К тому же агентств, которые готовы взяться за создание «велосипеда», на рынке не так много.
Лидеры рунета всё делают сами
В первую очередь — на цели проекта и ваши возможности. Давайте обратимся к опыту рынка. По данным Data Insight, в основе более чем половины крупных интернет-магазинов — собственная разработка.
Похожая ситуация с крупнейшими сайтами рунета — из топ-100 подавляющее большинство работает либо на самописных CMS, либо разработаны на фреймворках или языках программирования.
Лидеры рынка — это всегда высоконагруженные, нестандартные проекты с уникальной начинкой. Ещё один важный нюанс: большинству крупных сайтов уже много лет, и на момент их создания не было достаточно продвинутых массовых CMS.
Но это не значит, что массовые CMS проигрывают
Во-первых, подавляющее большинство сайтов — а их миллионы — всё же работают на CMS. Во-вторых, ещё недавно собственная CMS была у каждой студии. Даже мы в Uplab создавали собственную CMS, но по ряду рациональных причин перешли на Битрикс.
Мы уверены, что сделали верный выбор. Поддержка собственной CMS отнимала много сил, а результат не всегда радовал. Битрикс продолжает набирать обороты и сейчас занимает верхние строчки в рейтинге CMS Magazine.
Какой бы метод вы ни выбрали, делайте это осознанно, тщательно оценив риски, сроки и бюджет.
Читайте также:
Мнение редакции может не совпадать с мнением автора. Ваши статьи присылайте нам на 42@cossa.ru. А наши требования к ним — вот тут.