Персональный блог Игоря Антонова aka "spider_net"

CMS или фреймворк (CMF)?


Рубрика: Без рамки
Метки: | | | |
Просмотров: 5164
CMS или фреймворк (CMF)?

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

Проект проекту рознь

Здесь не скажу ничего нового, но выбирать инструмент нужно исходя из задачи. Звучит более, чем логично, но не нужно понимать это так: «Для каждой новой задачи подбирать новый инструмент». Важно выбрать несколько более-менее универсальных инструментов, которые позволяют без проблем решать 90%, возникающих задач.

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

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

Мне абсолютно непонятно, как многие мелкие студии решаются предлагать клиенту самостоятельно выбрать 1 из 10 CMS на выбор. Если в студии трудится 5-6 человек, то им физически не хватит времени досконально изучить возможности и нюансы доработки 10 движков. Следовательно, качество исполнения проекта может пострадать. Уж лучше сфокусироваться на одном-двух универсальных продуктах и быть в них экспертами, чем предлагать зоопарк однотипных технологий, а потом «наруливать» от клиента, когда ему потребуется что-то доработать.

Отлично, но что же все-таки лучше – CMS или CMF

Ответ опять же прост – для каждого проекта лучше свой инструмент. Абстрактные пример из реального мира. Появился заказчик с желанием создать интернет-магазин. Вы готовы ему помочь, и мучаетесь выбором между CMF и CMS. Конечно, вы крутой разработчик и для вас не составит труда написать весь функционал магазина на мега-популярном CMF. Только клиенту нужен самый типовой магазин с обычной корзиной, простым каталогом и другими стандартными вещами, присущими типичному небольшому интернет-магазину. Следовательно, выбрав писать все с нуля на CMF, вы потратите уйму времени на разработку/отладку, а потом еще на всевозможные доработки.

Если клиент готов за все это платить, то проект рискует стать «золотым» или вы попросту ничего не заработаете, а займетесь программированием для «души». Не верите? Давайте посчитаем. Разработка совсем простенького интернет-магазина начинается (делайте поправку на разные цены в городах) от 50-60 тысяч рублей. В эту стоимость входит движок, дизайн, верстка и т.д. Студии могут предложить проекты такой стоимостью только из-за наличия готовых обкатанных решений. Тогда разработка сведется к работе дизайнера/верстальщика и программиста, который прикрутит оформления к CMS. Прикрутить дизайн к движку, с которым регулярно работает разработчик – значительно проще, чем написать весь типичный функционал с нуля. Вот вам и простая арифметика – тиражные решения позволяют существенно экономить (при условии, что вам не придется добавлять к ним слишком много уникального функционала).

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

Значит, использовать CMS выгодней?

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

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

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

Подводим итоги

Теперь отвечаю на вопрос максимально кратко: требуется разработка типового проекта – берите CMS. Встала задача реализовать что-то уникальное – не мучайтесь с доработками CMS, возьмите фреймворк.

Оставьте комментарий!
comments powered by HyperComments