Какое-то время назад мы уже писали о разнице в работе с CMS, CMF и полностью самописным кодом. В сегодняшней статье мы постараемся углубиться в тему CMS — узнаем о их типах, какие языки программирования используются при их разработке, нюансах эксплуатации, а также стоит ли приобретать коммерческую CMS и как понять что ваш проект уже «перерос» этап использования последней.
На сегодняшний день почти все современные CMS написаны на разных версиях PHP. Подавляющее большинство из которых — бесплатные, а значит имеющие исходный код в свободном доступе. Данная особенность имеет скорее больше минусов нежели плюсов, так как такой код может быть проанализирован большим количеством людей и далеко не всегда все из них будут преследовать исключительно благие намерения. Из платных CMS, в настоящее время, на рынке широко представлены 1С-Bitrix, Magento, UMI.CMS и несколько других, менее популярных. Общими чертами всех коммерческих систем управления контентом являются:

- Высокая степень тестирования;
- Официальная поддержка разработчика, как техническая, так и коммерческая. Почти всегда она бесплатна для конечного клиента и входит в большинство поставок CMS;
- Большое количество совместимых модулей, которые способны значительно расширить функциональность такой системы;
- Большое количество дизайн-решений и шаблонов, которые позволяют разработать дизайн практически любой ниши в кратчайшие сроки.
- Официальное коммьюнити партнеров-разработчиков, которые могут взять на себя как функции поддержки уже созданного сайта или интернет-магазина, так и их разработку на базе выбранной CMS с нуля;
- Имиджевая составляющая при использование разрекламированного продукта;
- Подробная документация, которая зачастую регулярно обновляется;
- Возможность участия в различных тематических конференциях и митапах;
Конечно, это только малая часть свойств, присущих различным коммерческим системам управления контентом. На первый взгляд может показаться что перечисленные пункты — это плюсы и минусов не существует, однако при ближнем рассмотрение возможности использования какой-либо платной CMS выявляется и несколько минусов, пожалуй самыми серьезными из которых являются два:
- Относительно высокая стоимость системы, а в особенности «топовых» комплектаций, равно как и стоимость поддержки и разработки у сертифицированных разработчиков-партнеров;
- Небольшая численность участников таких коммьюнити, а значит отсутствие большого количества информации, связанной с опытом использования таких продуктов.
В случае же использования свободно распространяемых CMS пользователи получают возможность обладания информацией огромного количества ресурсов по каждому конкретному продукту, помимо этого другими чертами данных систем являются:
- Отсутствие привязки CMS к лицензии коммерческого распространения, а значит бо’льшая свобода ее использования;
- Большое количество свободно распространяемых модулей и дополнений, возможность создания собственных и модифицирования имеющихся (обычно в пределах лицензии GPL);
- Большой рынок по услугам поддержки таких систем, как в высоком ценовом сегменте, так и очень бюджетных;
- Возможность выбора CMS под ваши конкретные нужды, например под интернет-магазин или блог.
Существует также большое количество узкоспециализированных CMS, таких, например, как OpenCart. Данная система предназначена для создания интернет-магазинов, имеет модули доставки, подключения платежных систем, каталога товаров, поиска и другие. Такой подход подойдет для небольших интернет-магазинов с малой номенклатурой товаров (или услуг) с необходимостью только базовых возможностей и функций.

Отдельно стоит отметить техническую поддержку CMS и проектов, которые такие системы не используют. В случае использования CMS зачастую увеличивается цикл работ из-за необходимости работать с большим количеством избыточного кода, а не редко и с «костылями», оставленных от предыдущих компаний, с которыми работал конкретный клиент, что непременно отражается на эффективности такой поддержки. Практически всегда CMS не имеют автоматизированного тестирования, а значит многократно увеличивается риск возникновения разнообразных ошибок логики системы в целом и отдельных его модулей в частности.
Практически все доступные, на сегодняшний день, CMS имеют архитектуру, которая предполагает сильно связанную кодовую базу, ядро системы и его «обвязку». Такой подход имеет определенные плюсы относительно запуска такой CMS в аппаратно-программном окружение, однако создает большие сложности в случае необходимости интеграции различных сторонних сервисов или API, таких как: платежные сервисы, службы доставки, разнообразная информация по ценам и другие сущности внешних систем.
Резюмируя все вышеперечисленное можно сказать что проект, который в будущем будет масштабироваться, кодовая база которого будет актуализироваться, дизайн должен соответствовать последним трендам в UI\UX сложен в реализации на CMS. В таком случае разработка должна предусматривать создание продуманной архитектуры с возможностью гибкого подхода в создание и последующей поддержке как back-end, так и front-end. Возможность использования полного спектра современных технологий и утилит дает разработчику свободу выбора, а значит упрощает задачу создания платформы под такой проект.
Таким образом, только использование полностью кастомной разработки гарантирует создание сложного приложения, с максимально минимизированным фактором появления и использования потенциальных уязвимостей, возможностью быстрого и качественного подключения партнерских и сторонних API, создание специфичных модулей и плагинов и отсутствие расходов на обновление программной платформы.
Специалисты Creative Lab имеют большой опыт разработки систем любой сложности. Больше информации о нас можно получить на главной странице.