Эта статья стала продолжением темы изучения инструментов разработки веб-сайтов, которую я поднял в прошлой публикации «Иерархия КИС для разработки сайтов». Как я и обещал, в этот раз мы поговорим подробно о том, что такое CMS, изучим важные особенности этого инструмента и разберемся, когда его стоит применять.
Напомню, что я пишу не для программистов, а, скорее, для пользователей, в том числе, представителей бизнеса, а также в помощь своим коллегам. Лично мне регулярно приходится отвечать на множество вопросов, связанных с выбором CMS. И нередко приходится начинать с самого простого – что это такое. Казалось бы, «движками сайтов», как нередко называют CMS, пользуются массово, и в них нет ничего сложного. Но практика показывает, что это не совсем так. Даже те, кто уже имеет сайты и постоянно обновляет информацию через административный раздел CMS, часто не понимают, с чем на самом деле работают.
Почему это важно? Для получения ожидаемого результата, очень важно понимать, что именно вам необходимо, а также уметь объяснить это специалистам. И здесь огромную роль играет терминология. О том, почему это так важно, я уже писал в статье «Терминология в IT». И сейчас мы подробно разберемся с этим вопросом в сфере веб-разработки.
Сразу уточню, что по вопросам языков программирования и фреймворкам я не планирую отдельных публикаций, просто потому, что эти темы интересны программистам, а потому не совсем соответствуют тематике блога. Все, что нужно понимать пользователям, я уже описал в упомянутой выше статье «Иерархия КИС для разработки сайтов».
Любую CMS систему можно рассматривать с двух точек зрения:
С точки зрения доступа посетителей к информации, CMS – это инструмент, который генерирует код сайта, понятный браузерам. Т.е. благодаря программным решениям, имеющимся в CMS, ваши посетители смогут зайти на сайт, увидеть информацию, причем, оформленную так, как вы планировали.
Вторую точку зрения рассмотрим чуть подробнее. Если в недалеком прошлом сайтом чаще всего занимался исключительно программист, так как работать приходилось напрямую с кодом, то сейчас ситуация совсем другая. Сайты стали сложнее, а инструменты позволяют значительную часть работы выполнять на уровне пользователей.
В результате сайтом обычно занимаются:
Нередко авторы статей сами выполняют работу редактора. В этом случае человек сам пишет текст, оформляет и размещает его на сайте. Здесь все зависит от объемов каждого вида работы и других особенностей организации труда в каждом конкретном случае.
Как это работает:
Таким образом, получается готовый сайт, состоящий, по сути, из трех основных компонентов – CMS, тема (дизайн) и контент.
Использование CMS позволяет решить вопрос быстрого и эффективного взаимодействия между разными специалистами. Например, до создания CMS для добавления текста на сайт или даже редактирования выявленных опечаток нужно было обращаться к программисту, и он, уже в коде, вносил правки. Еще более трудоемкими и сложными были любые исправления дизайна, так как этим также занимался программист, и правил он каждую страницу отдельно. Теперь изменения вносятся один раз – в тему сайта. Далее CMS автоматически генерирует страницы с обновленным дизайном.
Сегодня существует множество CMS систем с самыми разными параметрами. Некоторые из них предназначены для ведения блогов или статейно-новостных проектов, другие больше подходят для интернет-магазинов, третьи «заточены» еще под какие-то функции. Даже те системы, которые претендуют на звание универсальных, на самом деле, такими назвать сложно. В каждой из них что-то реализовано глубже, что-то более поверхностно, какие-то возможности не предусмотрены вообще.
Выбор CMS системы, в принципе, ничем не отличается от выбора любого другого программного продукта. О том, как это правильно делать, я подробно писал в статье «Выбор IT систем».
Но для простоты разберемся с основными этапами выбора CMS подробнее.
В первом случае система будет находиться на серверах разработчика, вы не будете иметь доступа к «ядру» и не сможете в случае необходимости полностью «забрать» сайт к себе на компьютер или перенести на другой хостинг. Но при этом техническая поддержка (обновления, исправления проблем) лежит на разработчиках. Во втором случае вы покупаете «коробочное» решение, которое устанавливаете на серверах по своему выбору и обслуживаете самостоятельно.
В случае выбора SAAS-решения могут возникнуть проблемы с выполнением закона РФ о защите данных пользователей, если сервер окажется зарубежным. Кроме того, при выборе иностранных сервисов нередко возникает проблема с «пингом», т.е. ваш сайт будет медленно загружаться у пользователей.
Дело в том, что сайт формируется следующим образом:
Чем дальше от пользователя находятся сервера, тем выше вероятность задержки передачи данных.
С другой стороны, многие SAAS-решения позволяют создавать сайты даже без помощи программистов. Так называемые, «конструкторы сайтов» позволяют пользователям делать сравнительно сложные проекты из готовых модулей.
В случае выбора Standalone вы сможете контролировать, в какой стране и на каких серверах хранятся данные, сможете в любой момент сменить хостинг-провайдера. Но без программиста здесь уже никак не обойтись.
Как и многие другие программные системы, CMS бывают бесплатными и коммерческими. К последним относятся, например, Bitrix и Magento. В числе самых популярных бесплатных стоит назвать CMS Drupal, WordPress, Joomla. На самом деле, CMS – очень много, перечислять их все не имеет смысла.
Главное, на что нужно обращать внимание при выборе коммерческого решения:
Кроме того, обращайте внимание на наличие и цену необходимых вам модулей. Даже в случае выбора бесплатной CMS, дополнительные модули могут оказаться платными. Например, сама CMS WordPress полностью бесплатна. Но если вам хочется чего-то большего, чем может сама система, понадобятся дополнительные загружаемые модули. Какие-то можно просто скачать, другие вы найдете только в магазине за определенную сумму. Более того, большинство качественных плагинов к этой CMS – платные. Для скачивания доступны только самые простые решения.
Если вы планируете создание виртуальной торговой площадки, обязательно изучите CMS на наличие нужных вам возможностей. Существуют специализированные CMS, предназначенные, в первую очередь, для создания интернет-магазинов. В других типах могут быть подключаемые модули интернет-торговли.
В любом случае оцените возможности движка или подключаемого модуля:
Например, CMS WordPress создавалась для ведения блогов. Для нее созданы модули электронной торговли, например, WooCommerce. Но он очень ограничен в своих возможностях, и реализовать здесь многие современные решения в сфере электронной торговли будет крайне сложно или невозможно.
Есть еще CMS которые изначально созданы для ведение интернет торговли, например Prestoshop.
От этого параметра зависит, в первую очередь, скорость загрузки страниц сайта. Особенно это важно для пользователей мобильных устройств или устаревших компьютеров. Некоторые CMS сами по себе «легкие» и быстрые. Другие, например, Bitrix, заметно «перегружены» возможностями, что негативно влияет на скорость работы. А есть и такие, что, казалось бы, и причин низкой скорости не видно, а все равно «тормозят». Чаще всего, это самописные или редко используемые CMS.
В широко известных системах в случае проблем со скоростью загрузки всегда можно оптимизировать этот параметр. В том же Drupal, скорей всего, будет достаточно отключить ненужные модули. и включить кеширование. Решение проблемы часто даже не требует участия программиста.
В случае самописных или малоизвестных систем, оптимизация работы потребует участия профессионалов именно по этой системе, и даже они не всегда смогут решить вопрос.
Бытует ошибочное мнение, что чем популярнее система, тем чаще ее взламывают. Считается, что раз CMS активно используется, значит, она привлекает повышенное внимание хакеров. На самом деле, это не совсем так. С одной стороны, да, атаки на популярные системы идут чаще. С другой стороны, благодаря активному использованию «баги» выявляются быстро и «дыры» в безопасности закрываются при обновлениях, и взломать становиться сложнее.
Обращайте внимание на частоту обновлений CMS. Если разработчики ей занимаются, обновления будут выходить регулярно, как минимум, раз в один или два месяца. Слишком частые обновления – также не лучший показатель, как минимум, это не удобно. Но их отсутствие с точки зрения безопасности намного хуже.
Даже если сегодня вы создаете скромный сайт-визитку, скорей всего, в будущем вам захочется подключить новые возможности, расширить функционал. А потому важно обращать внимание на масштабируемость не только по количеству возможных пользователей, с этим современные сайты справляются без проблем, но и с точки зрения функционала.
Например, если вы захотите к блогу на WordPress подключить форум, это возможно, но подключаемый вариант – не самый удобный. Аналогично с интернет-магазином, об этом я уже говорил выше. Или, например, при работе с Joomla, пока вы работаете с информационным сайтом или небольшой торговой площадкой, проблем не будет. Но любая попытка автоматизации через API, например, обмен данными с CRM, вызовет большие сложности.
Обязательно изучите, как работает выбранная CMS с шаблонами (готовыми темами), много ли готовых шаблонов можно найти в сети, есть ли бесплатные варианты и т.д.
Дело в том, что разные CMS по-разному работают с шаблонами. Например, в Drupal есть встроенный шаблонизатор, который позволяет программисту работать с шаблонами без использования PHP. В WordPress или Bitrix подобного шаблонизатора нет. Хотя возможность загружать и редактировать темы имеется и в этих системах, но не столь гибкая.
Также нужно понимать, что готовые темы, которые идут в комплекте с CMS, скорей всего, вам не подойдут. Я практически не встречал достойных внимания встроенных решений оформления сайта.
Существует два выхода:
Независимо от выбранного пути, чем больше существует готовых шаблонов под выбранную CMS, тем лучше. В первом случае у вас будет широкий выбор, во втором не возникнет сложностей с поиском специалиста по верстки для создания уникального шаблона.
Отдельно хочется сказать о существовании двух разных типов CMS:
Пример второго варианта систем - content-cms.ru и contentful.com. Есть и другие аналоги, в том числе, не столь специализированные. Главная особенность – в системе невозможно ни настраивать сайт, ни менять его шаблон, ни управлять какими-то модулями. Есть только пользователи с их уровнем доступа и возможность добавлять, редактировать и удалять контент. Давайте разберемся подробнее, как это работает.
Все данные и программные решения размещаются на вашем хостинге. Более того, “движок” должен находиться там постоянно, так как при каждом обращении пользователя система генерирует код запрошенной страницы, а не хранит готовые html-странички в файлах.
Процесс работы с сайтом выглядит следующим образом:
В результате вы получаете полноценный сайт с возможностью подключения любых интерактивных модулей. Для работы с проектом большую часть времени не нужен программист, управлять контентом, общаться с пользователями, управлять правами доступа сможет опытный пользователь.
В этом случае вы используете сервис, в котором можете создавать страницы с контентом, т.е. сочетание текста, графики, видео с готовой html-разметкой. По сути, то же самое делает контент-менеджер в полноценной CMS с применением визуального редактора. Но вы получаете только код контента, без шаблона сайта, меню и других важных атрибутов.
Далее понадобится помощь программиста, чтобы он собрал все эти статьи, после чего вручную или, что чаще, при помощи специальных программ сгенерировал готовый сайт.
Часто сервисы управления контентом уже содержат в себе такой софт, и тогда о них говорят как о генераторах статичных сайтов. На самом деле, они просто собрали вместе два отдельных компонента - CMS второго типа и генератор страниц.
И даже в этом случае обойтись без программиста не выйдет. Необходимо этот набор файлов корректно перенести на хостинг, возможно, для корректного отображения понадобится вносить правки в ручном режиме и т.д.
Для небольших лендингов или статичных сайтов-визиток подобные системы прекрасно подходят и даже имеют свои преимущества. Вы получаете готовые страницы в виде набора файлов, сайт можно размещать практически на любом хостинге, в том числе, на бесплатных с минимальным объемом места и “урезанными” возможностями.
Но есть и целый перечень минусов:
По сути, системы генерации контента нельзя назвать полноценными CMS, о которых я рассказывал выше. Их использование потребует постоянного участия программиста, т.е. совсем другой системы организации труда. Если вам нужен небольшой информационный ресурс, проблем не возникнет. Вы сгенерируете набор статичных страниц и сможете выложить их в сеть. Но если вы планируете постоянно работать с проектом, развивать его, получать обратную связь от пользователей, выбирайте полноценную CMS.
Конструкторы сайтов: что это такое?
Я уже говорил о конструкторах выше, но хочу выделить это отдельно, так как вопрос очень популярен. Существует множество онлайн-конструкторов сайтов, платных или бесплатных. Это может быть Wix, Tilda, Jimdo, Syte123 и многие другие. Все они также являются одним из видов CMS.
Конструкторы сайтов классифицируются как SAAS-решения с закрытым кодом. Это не всегда удобно для разработки сложных проектов, так как разработчики предоставляют минимум возможностей для программистов. Обычно они ограничиваются изменением шаблона и работой с API (также часто в урезанном варианте). Если вам потребуется больше, придется обращаться к разработчикам и пробовать договариваться с ними за отдельную плату.
Но, тем не менее, это такие же полноценные CMS, как и любые другие. И если возможностей конструктора вам достаточно, а цена ежемесячной оплаты устраивает, вполне возможно, что именно этот вариант будет идеальным. Ведь у вас будет всегда полноценная техподдержка и автоматические обновления, а помощь программиста не понадобится совсем.
Какая CMS лучше?
Однозначно ответить на этот вопрос невозможно. Все зависит от ваших требований и возможностей. Лично я предпочитаю работать с CMS Drupal, считаю ее – одной из лучших разработок для самых разных типов сайтов.
Преимущества системы:
Мы уже более 10 лет создаем сайты на CMS Drupal, ранее это была версия 7, теперь появилась версия 10. Как и в любой CMS, в ней есть свои особенности, но результат нравится нам и нашим клиентам.
Какая CMS лучше – платная или бесплатная?
На самом деле, это не самое главное. Намного важнее выбирать по техническим параметрам. Т.е. если система подходит под ваши цели, значит, она хорошая.
Для простых блогов или небольших корпоративных сайтов подойдет практически любая CMS. Если вы решили создавать что-то более сложное, то нужно начинать с составления списка требований, а финансовый вопрос оставить на этап финального выбора, когда вы будете определяться между двумя или тремя практически одинаковыми.