Движки сайтов: ручные и CMS

Любой движок сайта работает совместно с базой данных, поддержку базы данных осуществляет тот же хостер. Самым популярным видом базы данных является база данных MySQL. Движки для сайтов условно делятся на: — ручные, т.е. самописные, написанные программистом или группой программистов; — стандартные CMS, разработанные профессиональными компаниями.

CMS (Content Management System) − системы управления сайтом или контентом. Это уже готовые движки с возможность расширения функционала посредством плагинов – программных модулей. Самыми популярными на сегодня среди CMS являются WordPress, Joomla, Drupal и др. CMS могут включать в себя десятки, даже сотни программных модулей, которые объединены в единую систему для выполнения различных функций.

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

Принцип функционирования движка.

image0011Вначале давайте обратимся к принципу работы самого обычного сайта. Каким образом происходит открытие любой веб-страницы на нем? Мы вводим в адресную строку браузера адрес интересующей нас страницы, и она открывается, если данные этой страницы лежат на сервере. Если же адрес указан неверно или данных этой страницы нет на сервере, то мы увидим так называемую «ошибку 404», свидетельствующую о том, что данная запрашиваемая страница не найдена.

Каким образом происходит открытие той или иной страницы сайта, функционирующего с применением CMS? Как таковых, страниц на сервере нет. Они все есть в базе данных, располагаясь в виде текстовой информации, которая при помощи программы, работающей с этой базой (это и есть наш движок) по запросу пользователя и выводится на экран монитора. То есть, как только человек вводит адрес определенной страницы или же переходит по ссылке, то программа (движок) извлекает из базы данных определенный фрагмент текста и дизайна и отображает пользователю. На совершение всех этих процедур уходит всего лишь доля секунды, потому эти операции для пользователя почти незаметны. Исходя из всего сказанного выше, мы можем сделать вывод о том, что страница будет генерироваться ровно столько раз, сколько её будут извлекать по запросу пользователей из базы данных.

Достоинства CMS.

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

В движках ручной сборки вносить исправления нужно вручную в каждую отдельную страницу, что занимает много времени. Правда, в ручных движках применяется технология SSI (Server Side Include), которая позволяет вносить исправления сразу же на несколько страниц одновременно, но это касается только текста и программного кода, но не дизайна. С применением системы управления CMS решение этих задач упрощается и убыстряется. Например, чтобы сменить дизайн на нескольких страницах одновременно, нужно открыть ряд файлов, отвечающих за дизайн сайта, после чего сменить их на новые, и дело сделано − все страницы будут отображаться, используя новый дизайн.

Добавить новую опцию или функцию на сайт становится очень просто: нашел подходящий плагин – программный модуль (от англ. plug-in), подключаемый к основной программе, подключил его за несколько минут и готово – новая функция уже есть на сайте. Трудозатраты в разы меньше, чем при самописном движке.

Управление сайтом с помощью CMS: добавление новых материалов, редактирование, удаление, подключение дополнительных программных модулей – плагинов − упрощает работу обслуживающего персонала, а для собственника сайта, CMS позволяет полностью контролировать сайт и, если потребуется, легко менять или увольнять сотрудников и программистов, так как найти им замену становится достаточно просто.

Недостатки CMS.

image0051Недостатком CMS-системы является то, что движок будет требовать больше машинного времени веб-хостера, так как страница будет генерироваться ровно столько раз, сколько её будут извлекать по запросу пользователей из базы данных. Чтобы было проще понять − просто представьте самый обыкновенный калькулятор, который есть в каждом Windows. Сосчитать, сколько будет 2+3 он сможет без проблем, однако если заставить его выполнять несколько тысяч задач одновременно, то нагрузка станет действительно заметной.

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

Причин медленной работы сайта может быть две:

  1. Программист написал программу недостаточно хорошо, т.е. плохо провел её оптимизацию и не проработал механизм оперативного ответа на запросы к базе данных.
  2. Не хватает мощности сервера веб-хостера. Все дело в дешевом тарифном плане или жадности веб-хостера, который пожалел денег на обновление серверного железа. Отсюда и тормоза в работе сайта.

Еще у CMS существует условный недостаток − рутинность добавления нового материала на сайт. Стандартную HTML-страницу (статическую) можно легко сверстать при помощи локального компьютера, внеся необходимые изменения на требующие этого страницы, после чего просто взять и загрузить («залить») их на сервер в течение минуты.

В CMS статья будет добавляться в режиме on-line, что потребует определенных затрат времени на то, чтобы в контрольной панели заполнить необходимые данные: название, подпись, ключевые слова и пр., только после всего этого можно нажать на кнопку подтверждения, и тогда статья появится на сайте. Кажется, будто бы это не долго, однако, когда количество статей, требующих размещения, достаточно большое, тогда и количество затрачиваемого времени станет существенным. Надо учесть, что этот недостаток становится таковым, если объем материалов, размещаемых на сайте, слишком большой. Однако с точки зрения владельца сайта этот недостаток является плюсом, так как эту работу можно поручить практически любому, а не только высокооплачиваемому программисту, при этом и контролировать такой сайт проще.

Теперь про защиту. С защитой в CMS дела обстоят не так отлично по сравнению с защитой, которую можно сделать, если нанять высококлассного программиста. Поэтому, если информация на сайте очень дорогая и секретная, то опытные веб-мастера не советуют ставить бесплатные CMS. Не следует забывать, что дополнительная защита требует и дополнительных расходов. И еще, справедливости ради, стоит сказать, что взломать можно любой сайт и любой движок.

Важно помнить, что абсолютно вся информация о страницах сайта хранится в специальной базе данных, как правило — MySQL . Именно поэтому периодически необходимо делать резервные копии этой информации − на случай различных неожиданностей. Периодичность резервного копирования баз данных напрямую зависит от скорости обновления контента на сайте.

Все движки − и самописные и стандартные CMS − в подавляющем большинстве случаев программируются на языке PHP, тем не менее, возможно применение других языков, всё зависит от программиста и возможностей веб-хостинга. В любом случае, движок всегда работает в связке с базой данных MySQL, а базы данных так же должны поддерживаться веб-хостером.

Большинство сайтов в Интернете работают на стандартных CMS. На сегодняшний день в России самыми популярными CMS являются: WordPress, Joomla, Drupal, Data Life Engine (DLE), Битрикс, MODx, Maxsite CMS, NetCat, HostCMS, Danneo.image0071

Из всех CMS надо выделить три: WordPress, Joomla, Drupal. На их основе и создается большинство сайтов в последние годы. Это связано, прежде всего, с хорошей поддержкой этих систем разработчиками, наличию руководства на русском языке и присутствием большого количества бесплатных шаблонов и плагинов, подключаемых к основной программе и предназначенных для расширения ее возможностей.