Сравнение разных CMS и Фреймворков

21.05.2024

Хотел бы поделиться своим мнением по работе некоторых Фреймворков. И сначала я расскажу о рейтинги и популярности. Потом перейду к краткому обзору, а дальше расскажу о скорости.Стоит так же отметить разницу между CMS и Фреймворками.

Фреймворки и CMS: сравнение и особенности

В современном мире веб-разработки существует два основных подхода к созданию сайтов: использование фреймворков и CMS.
CMS (Content Management System) — это программное обеспечение, предназначенное для управления контентом сайта. Оно предоставляет пользователю интерфейс для добавления, редактирования и удаления контента, а также настройки внешнего вида сайта. CMS широко используются для создания блогов, новостных сайтов, интернет-магазинов и других типов сайтов.
Примеры популярных CMS:WordPress;Joomla;Drupal.

Фреймворк — это набор инструментов и библиотек, предназначенных для упрощения процесса разработки веб-приложений. Фреймворк предоставляет разработчику каркас приложения, на основе которого можно создавать собственные проекты.
Примеры популярных фреймворков: React; Vue.js; Angular.

Основное отличие между CMS и фреймворками заключается в том, что CMS предоставляет готовый инструмент для создания и управления сайтом, в то время как фреймворк требует от разработчика создания сайта с нуля.
В заключение, выбор между использованием фреймворка или CMS зависит от конкретных потребностей проекта. Фреймворк может предоставить больше гибкости и контроля над проектом, но потребует больше времени и усилий для разработки. CMS, такая как WordPress, может быть более подходящей для проектов, требующих быстрого запуска и минимальной настройки.

WordPress

WordPress — одна из самых популярных CMS в мире. По данным аналитической компании W3Techs, на WordPress создано 65,2 % сайтов среди CMS-управляемых и 43,1 % всех сайтов в интернете. WordPress обладает широким набором функций и возможностей, что делает его подходящим выбором для создания различных типов сайтов.
Однако WordPress также имеет свои недостатки, такие как проблемы с безопасностью и необходимость оптимизации для повышения производительности.

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

REST API в WordPress
REST API в WordPress позволяет разработчикам создавать приложения, которые могут взаимодействовать с данными WordPress. Однако использование REST API может представлять угрозу безопасности, если оно не настроено должным образом.
Злоумышленники могут использовать REST API для отправки спама, кражи данных пользователей или выполнения других вредоносных действий. Поэтому важно настроить защиту REST API, чтобы предотвратить несанкционированный доступ.
REST API включен сразу после установки и в этом проблема ведь разработчики не сообщают об этом. А с помощью такого кода

<ваш сайт>/wp-json/wp/v2/users/

Можно было увидеть список всех пользователей и их E-mail. Бери и рассылай спам. Но это еще не все, не давно ко мне обратились с просьбой проверить сайт. Так как с него приходит спам. Плюс каким-то образом оставляют комментарии. Которые видны в админке. Захожу на сайт и вижу что коментари закрыты( оставлять их на сайте нельзя). На формах стоит рекапча. Но спам идет, оказывается злоумышлиники с помошью REST API отправляли формы и письма. Стоило мне выключить REST API, как спам прекратился. Есть конечно минус при отключение REST API. Это то, что некоторые Палагины перестают работать без него или работают некоректо. Пришлось дописывать код, чтоб все работало. С помощью вот таких строк можно было отправлять форму и оставлять комментарий по REST API

(сайт)/wp-json/contact-form-7/v1/contact-forms/(номер формы)/feedback

Комментарии

(сайт)/wp-json/wp/v2/comments/?author_name=Василий&author_email=vasya@mail.com&content=Отличная статья

Но стоит отметить что при написании стать некоторые багги уже пофиксили при обновлении ядра вордпресс. Например теперь я не вижу емайл пользователей. Да и вообще весь список пользователей. Только админов.

Оптимизация WordPress

Еще из минусов, это загрузка всех стилей и скриптов на всех страницах. Видите ли google speed иногда жалуются на загрузку скриптов и стилей которые не нужны на страницах. Допустим, есть 2 страницы «главная» и «о нас». На главной у нас слаид, и чтоб он работал нужно подключить дополнительные стили и скрипты. Не опытный программист подключит и все, но если так задуматься. То на странице «о нас» нет слайда и скрипты там не нужны. А это значит что при загрузки страницы мы подключаем не нужные скрипты и стили. На что собственно и жалуется google speed.

1C-Битрикс

На этой CMS я работал не так много, поэтому не могу сравнить её со скоростью других платформ. Она платная и стоит недёшево.
Если сравнивать её с WordPress, то можно сказать, что административная панель здесь сделана лучше. Можно сразу создавать свои типы данных, тогда как в WordPress для этого пришлось бы лезть в код или скачивать плагин. В 1C-Битрикс также есть плагины, но большинство из них платные.
Я мало что могу о ней сказать, но меня всегда удивляло, что большинство сайтов на этой CMS выглядят так, будто их создали в 1980–1990 годах. Всё какое-то квадратное и невзрачное. Возникает ощущение, что все деньги ушли на покупку лицензии и работу программиста (кстати, ценник у программистов на эту CMS довольно высок), а на веб-дизайнера денег не хватило.

Laravel

Laravel — PHP-фреймворк, который я выбрал для дублирования своего сайта. Мне очень понравилось работать с ним, в отличие от Django или других фреймворков. Он работает на PHP, а я неплохо знаком с этим языком.
У Laravel есть встроенная поддержка компонентов и неплохое SEO. В целом, я остался доволен этим фреймворком. Особенно понравилась встроенная ленивая загрузка изображений. Позже я узнал, что у Laravel есть стартовые наборы с поддержкой React/Vue и их компонентов.
Вот несколько известных сайтов, созданных на Laravel: wattpad.com, laracasts.com, winchestercollege.org.

Django

Django — это веб-фреймворк, написанный на Python. У него есть удобная админка, которая позволяет легко управлять содержимым сайта. Django похож на Laravel, но он сложнее.
Несмотря на то, что я хорошо знаком с Python, у меня возникли проблемы с Django. Во-первых, при сохранении изображений в админке возникала ошибка, из-за которой сайт падал. Возможно, проблема была связана с хостингом( я установил Django автоматически с помощью сервиса провайдера) и мне пришлось потратить некоторое время на настройку путей для сохранения изображений.
Вторая проблема была связана с миграциями. Я создал нужные поля таблицы, провёл миграцию, но затем понял, что нужно добавить ещё поля определённого типа. Когда я попытался обновить миграцию, ничего не вышло. Пришлось удалить таблицы в базе данных, очистить папку миграций и начать всё заново.
Ещё одна проблема была связана с кэшем. После исправления ошибки и перезагрузки страницы Django продолжал показывать ошибку. Пришлось подождать несколько минут, прежде чем ошибка исчезла.
Одним из преимуществ Django является возможность создания приложений. Например, если у вас есть основной сайт, и вы хотите добавить на него чат или портфолио, вы можете создать новое приложение «портфолио». Это приложение будет содержать файлы миграций, пути и другие необходимые элементы. Затем вы можете подключить это приложение к своему основному сайту, и оно будет работать. Это похоже на использование плагинов в CMS.

React и Vue

React и Vue — это популярные фреймворки для создания пользовательских интерфейсов. Поначалу я хотел написать о каждом из них отдельно, но они оказались очень похожими. С React мне пришлось повозиться дольше, но когда я перешёл к Vue, стало проще. Возможно, это связано с тем, что Vue проще в освоении, или с тем, что я уже имел опыт работы с React.
Оба фреймворка имеют свои особенности работы с SEO. Из-за этого часто используются такие инструменты, как Next или Vuex. Более подробную информацию об этом можно найти в интернете.
Эти фреймворки можно добавлять на уже существующие сайты. Однако я так и не понял, зачем и как это делать. У обоих фреймворков не очень хорошая справочная документация, а ответы на мои вопросы на форумах часто сводились к копированию информации или ссылкам на одни и те же статьи.
Некоторые известные сайты, использующие React: Facebook, Netflix, Instagram, PayPal, Dropbox, New York Times, Yandex, Tinkoff, Megafon, VK.
Некоторые известные сайты, использующие Vue: Zoom, GitLab, Wizzair, Netflix, Ozon, Sportmaster.

Обновления

Дальше я приведу примеры последних обновлений возможно для кого-то это показатель. Для меня если фреймворк или cms обновляют хотя бы раз в год значит что над ним работают и он востребован.

Последние обновления.

Название Дата обновления
WordPress 7 мая 2024
Laravel 10.2.10 (5 декабря 2023)
1CБитрикс 2019(по страницы из википедии, хотя модули говорят обновляться ежемесячно)
Django 5.0.4 (3 апреля 2024)
Vue 3.4.25 (24 апреля 2024)
React 18.3.1 (26 апреля 2024)

Скорость

Дальше я проеду скорость из google speed. Это конечно не показатель, но все же множество компаний и на которые я работал. Ссылались именно на google speed и требовали от меня улучшение показаний на нем. На всех сайтах был сделаны и загружены скрипты как и на этом сайте.

Название Скорость на мобильном Скорость на ПК
WordPress 39 90
Laravel* 71 82
1CБитрикс** 0 0
Django 55 69
Vue* 77-78 70-83
React* 71-87 68-90

 

* Для этих сайтов я использовал в качестве Backend REST API от WordPress. Стоить отметить что возможно бы если я писал серверную часть и подключал ее к Firebase. Как многие советую. То и скорость я думаю была бы выше.
**Поскольку лицензия на битрикс платная(30 дней бесплатно). Я не стал тратить время на написание сайта на нем. Все равно он потом бы не работал.