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

Напомню, что я пишу не для программистов, а, скорее, для пользователей, в том числе, представителей бизнеса, а также в помощь своим коллегам. Лично мне регулярно приходится отвечать на множество вопросов, связанных с выбором CMS. И нередко приходится начинать с самого простого – что это такое. Казалось бы, «движками сайтов», как нередко называют CMS, пользуются массово, и в них нет ничего сложного. Но практика показывает, что это не совсем так. Даже те, кто уже имеет сайты и постоянно обновляет информацию через административный раздел CMS, часто не понимают, с чем на самом деле работают.

Почему это важно? Для получения ожидаемого результата, очень важно понимать, что именно вам необходимо, а также уметь объяснить это специалистам. И здесь огромную роль играет терминология. О том, почему это так важно, я уже писал в статье «Терминология в IT». И сейчас мы подробно разберемся с этим вопросом в сфере веб-разработки.

Сразу уточню, что по вопросам языков программирования и фреймворкам я не планирую отдельных публикаций, просто потому, что эти темы интересны программистам, а потому не совсем соответствуют тематике блога. Все, что нужно понимать пользователям, я уже описал в упомянутой выше статье «Иерархия КИС для разработки сайтов».

Два разных взгляда на CMS

Любую CMS систему можно рассматривать с двух точек зрения:

  1. Доступ посетителям сайта к информации;
  2. Инструмент для организации труда программиста, авторов и редакторов.

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

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

В результате сайтом обычно занимаются:

  1. Программист. Создает саму «оболочку», т.е. настраивает внешний вид сайта, различные инструменты интерактивного общения с пользователями и т.д.
  2. Автор контента. Человек, который пишет материалы для сайта.
  3. Редактор или, как чаще говорят, контент-менеджер. Человек, который оформляет материалы на сайте, добавляет видео, графику и т.д.

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

Как это работает:

  • Шаг 1. Создается дизайн, т.е. общая «картинку», как будут выглядеть страницы сайта. Этим занимаются веб-дизайнеры. После согласования внешнего вида страниц эти специалисты к работе не привлекаются. 
  • Шаг 2. Программист (верстальщик) создает на основе дизайна «тему сайта». На этом этапе картинка превращается в HTML-код с множеством картинок и описанием стилей, т.е. того, как информация будет отображаться на сайте, каким шрифтом, в какой цветовой гамме и т.д.
  • Шаг 3. Программист подключает тему в CMS и выполняет другие необходимые настройки.
  • Шаг 4. Авторы и контент-менеджеры создают контент и заполняют сайт информацией.

Таким образом, получается готовый сайт, состоящий, по сути, из трех основных компонентов – CMS, тема (дизайн) и контент.

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

Основные характеристики CMS

Сегодня существует множество CMS систем с самыми разными параметрами. Некоторые из них предназначены для ведения блогов или статейно-новостных проектов, другие больше подходят для интернет-магазинов, третьи «заточены» еще под какие-то функции. Даже те системы, которые претендуют на звание универсальных, на самом деле, такими назвать сложно. В каждой из них что-то реализовано глубже, что-то более поверхностно, какие-то возможности не предусмотрены вообще. 

Выбор CMS системы, в принципе, ничем не отличается от выбора любого другого программного продукта. О том, как это правильно делать, я подробно писал в статье «Выбор IT систем».

Но для простоты разберемся с основными этапами выбора CMS подробнее.

1. SAAS или Standalone

В первом случае система будет находиться на серверах разработчика, вы не будете иметь доступа к «ядру» и не сможете в случае необходимости полностью «забрать» сайт к себе на компьютер или перенести на другой хостинг. Но при этом техническая поддержка (обновления, исправления проблем) лежит на разработчиках. Во втором случае вы покупаете «коробочное» решение, которое устанавливаете на серверах по своему выбору и обслуживаете самостоятельно.

 В случае выбора SAAS-решения могут возникнуть проблемы с выполнением закона РФ о защите данных пользователей, если сервер окажется зарубежным. Кроме того, при выборе иностранных сервисов нередко возникает проблема с «пингом», т.е. ваш сайт будет медленно загружаться у пользователей. 

Дело в том, что сайт формируется следующим образом:

  1. Браузер пользователя отправляет запрос на сервер.
  2. Сервер, где хранится CMS и базы данных, в ответ формирует ответ на основе которого ваш браузер формирует страницу.

Чем дальше от пользователя находятся сервера, тем выше вероятность задержки передачи данных.

С другой стороны, многие SAAS-решения позволяют создавать сайты даже без помощи программистов. Так называемые, «конструкторы сайтов» позволяют пользователям делать сравнительно сложные проекты из готовых модулей.

В случае выбора Standalone вы сможете контролировать, в какой стране и на каких серверах хранятся данные, сможете в любой момент сменить хостинг-провайдера. Но без программиста здесь уже никак не обойтись.

2. Платные и бесплатные CMS

Как и многие другие программные системы, CMS бывают бесплатными и коммерческими. К последним относятся, например, Bitrix и Magento. В числе самых популярных бесплатных стоит назвать CMS Drupal, WordPress, Joomla. На самом деле, CMS – очень много, перечислять их все не имеет смысла. 

Главное, на что нужно обращать внимание при выборе коммерческого решения:

  1. Редакция. Насколько выбранный вариант подойдет для ваших целей.
  2. Стоимость CMS. Возможно, есть решение ничем не хуже, но выгоднее.
  3. Цена обновлений. Это очень важный параметр, так как часто люди считают, что обновления будут поставляться бесплатно «по умолчанию», но это не всегда так. 

Кроме того, обращайте внимание на наличие и цену необходимых вам модулей. Даже в случае выбора бесплатной CMS, дополнительные модули могут оказаться платными. Например, сама CMS WordPress полностью бесплатна. Но если вам хочется чего-то большего, чем может сама система, понадобятся дополнительные загружаемые модули. Какие-то можно просто скачать, другие вы найдете только в магазине за определенную сумму. Более того, большинство качественных плагинов к этой CMS – платные. Для скачивания доступны только самые простые решения.

3. Наличие модуля интернет-магазина

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

В любом случае оцените возможности движка или подключаемого модуля:

  1. Насколько он соответствует вашим пожеланиям?
  2. Реализованы ли там все нужные вам инструменты?
  3. Можно ли к ним подключить какие-то системы оплаты и т.д.

Например, CMS WordPress создавалась для ведения блогов. Для нее созданы модули электронной торговли, например, WooCommerce. Но он очень ограничен в своих возможностях, и реализовать здесь многие современные решения в сфере электронной торговли будет крайне сложно или невозможно.

Есть еще CMS которые изначально созданы для ведение интернет торговли, например Prestoshop.

4. Скорость работы

От этого параметра зависит, в первую очередь, скорость загрузки страниц сайта. Особенно это важно для пользователей мобильных устройств или устаревших компьютеров. Некоторые CMS сами по себе «легкие» и быстрые. Другие, например, Bitrix, заметно «перегружены» возможностями, что негативно влияет на скорость работы. А есть и такие, что, казалось бы, и причин низкой скорости не видно, а все равно «тормозят». Чаще всего, это самописные или редко используемые CMS.

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

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

5. Безопасность

Бытует ошибочное мнение, что чем популярнее система, тем чаще ее взламывают. Считается, что раз CMS активно используется, значит, она привлекает повышенное внимание хакеров. На самом деле, это не совсем так. С одной стороны, да, атаки на популярные системы идут чаще. С другой стороны, благодаря активному использованию «баги» выявляются быстро и «дыры» в безопасности закрываются при обновлениях, и взломать становиться сложнее.

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

6. Масштабируемость

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

Например, если вы захотите к блогу на WordPress подключить форум, это возможно, но подключаемый вариант – не самый удобный. Аналогично с интернет-магазином, об этом я уже говорил выше. Или, например, при работе с Joomla, пока вы работаете с информационным сайтом или небольшой торговой площадкой, проблем не будет. Но любая попытка автоматизации через API, например, обмен данными с CRM, вызовет большие сложности.

7. Шаблонизация (темы)

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

Дело в том, что разные CMS по-разному работают с шаблонами. Например, в Drupal есть встроенный шаблонизатор, который позволяет программисту работать с шаблонами без  использования PHP. В WordPress или Bitrix подобного шаблонизатора нет. Хотя возможность загружать и редактировать темы имеется и в этих системах, но не столь гибкая.

Также нужно понимать, что готовые темы, которые идут в комплекте с CMS, скорей всего, вам не подойдут. Я практически не встречал достойных внимания встроенных решений оформления сайта.

Существует два выхода:

  1. Скачать или купить готовый шаблон.
  2. Заказать дизайн с нуля с последующей шаблонизацией.

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

И еще раз о типах CMS

Отдельно хочется сказать о существовании двух разных типов CMS:

  1. Система управления сайтом, совмещающая в себе управление контентом и генерацию сайта для пользователей. Об этом типе мы говорили выше.
  2. Система управления контентом. В этом случае система предназначена только для создания контента, а далее программист или другая система используют его для наполнения сгенерированного сайта. При этом за сайт отвечает совсем другая программа.

Пример второго варианта систем - content-cms.ru и  contentful.com. Есть и другие аналоги, в том числе, не столь специализированные. Главная особенность – в системе невозможно ни настраивать сайт, ни менять его шаблон, ни управлять какими-то модулями. Есть только пользователи с их уровнем доступа и возможность добавлять, редактировать и удалять контент. Давайте разберемся подробнее, как это работает.

Полноценная CMS

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

Процесс работы с сайтом выглядит следующим образом:

  1. Программист один раз устанавливает и настраивает CMS.
  2. Авторы и контент-менеджеры создают, удаляют и редактируют контент без участия программиста.
  3. В случае необходимости изменить дизайн, поправить стили или добавить на страницы какие-то функции, работа программиста занимает минимум времени. Правки в шаблон или таблицу стилей вносятся один раз, после чего система начинает использовать обновленную версию для генерации страниц. Добавление функций чаще всего заключается в подключении готовых модулей. Бывают случаи, когда требуется написание кода, но они, скорее, исключение.

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

Система управления контентом без автоматической генерации сайта

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

Далее понадобится помощь программиста, чтобы он собрал все эти статьи, после чего вручную или, что чаще, при помощи специальных программ сгенерировал готовый сайт.

Часто сервисы управления контентом уже содержат в себе такой софт, и тогда о них говорят как о генераторах статичных сайтов. На самом деле, они просто собрали вместе два отдельных компонента - CMS второго типа и генератор страниц. 

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

Для небольших лендингов или статичных сайтов-визиток подобные системы прекрасно подходят и даже имеют свои преимущества. Вы получаете готовые страницы в виде набора файлов, сайт можно размещать практически на любом хостинге, в том числе, на бесплатных с минимальным объемом места и “урезанными” возможностями. 

Но есть и целый перечень минусов:

  1. Для внесения изменений понадобится знание HTML, CSS, javascript и т.д. Без помощи программиста вносить правки на уже готовый сайт вы не сможете.
  2. Редактирование готовых статичных страниц сайта – процесс трудоемкий. Вам придется либо полностью генерировать сайт с нуля и загружать все файлы на хостинг заново, либо, как мы описали выше, заниматься ручными правками на уровне кода, причем, даже мелкие изменения потребуют значительных затрат времени.
  3. Статичные сайты крайне ограничены с точки зрения интерактивного обмена информацией с пользователями. Системы генерации контента не подойдут для сложных проектов, в том числе, полноценных интернет-магазинов или систем обслуживания клиентов. 

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

Вопросы и ответы

Конструкторы сайтов: что это такое?

Я уже говорил о конструкторах выше, но хочу выделить это отдельно, так как вопрос очень популярен. Существует множество онлайн-конструкторов сайтов, платных или бесплатных. Это может быть Wix, Tilda, Jimdo, Syte123 и многие другие. Все они также являются одним из видов CMS. 

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

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

Какая CMS лучше?

Однозначно ответить на этот вопрос невозможно. Все зависит от ваших требований и возможностей. Лично я предпочитаю работать с CMS Drupal, считаю ее – одной из лучших разработок для самых разных типов сайтов.

Преимущества системы:

  1. Универсальная. Подходит для статейных проектов, посадочных страниц (лендингов), интернет-магазинов, корпоративных сайтов и для многого другого.
  2. Бесплатная. Причем, имеет большой перечень встроенных инструментов, которые достаточно просто подключить.
  3. С открытым кодом. При необходимости программист может вносить значительные изменения в работу сайта.
  4. Множество шаблонов и модулей. Библиотеки дополнений к Drupal обширны, всегда есть из чего выбирать.
  5. Быстрая и надежная.

Мы уже более 10 лет создаем сайты на CMS Drupal, ранее это была версия 7, теперь появилась версия 10. Как и в любой CMS, в ней есть свои особенности, но результат нравится нам и нашим клиентам.

Какая CMS лучше – платная или бесплатная?

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

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