Июль, 2015

Разработка: CMS и Framework лицом к лицу

Опубликовано: 29.07.2015 | 37346

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

Но населить свой мир инопланетянами или пиратами из той же коробки с хоббитами вы никак не сможете – их там просто нет, не положили! Этим CMS и расстраивает.

CMS (Content Management System, система управления контентом) – это софт, используемый для создания, управления и редактирования содержимого веб-сайта. И вот представьте, что этот софт – ваш уже купленный и собранный конструктор с теми же хоббитами, Звездой Смерти или средневековым кораблём.

Лего сайт на CMS

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

А какие CMS бывают?

Детальки от Лего, как и фломастеры, – на вкус и цвет разные. То есть вы можете встретить как узкоориентированные системы (специально под блоги, онлайн-магазины, форумы), так и универсальные. Некоторые можно использовать бесплатно, а за некоторые придётся заплатить. Большинство CMS пишется на языке PHP, поэтому на выходе мы получаем исходный код, в который можно внести изменения, правда для этого потребуются усилия разработчиков.

А вот и небольшой список наиболее популярных систем:

Виды CMS

  • Joomla – часто обновляется, предоставляется бесплатно, довольно простая для разработки и использования. Также она сопровождается большим количеством готовых модулей, правда, довольно низкого качества.
  • Drupal – универсальная среда для разработки сайтов любых форм и размеров, бесплатна, подходит для умелых специалистов.
  • MODx – гибкая система, эффективная, бесплатная, но тоже требует определенных навыков и опыта.
  • 1C Битрикс – масштабная CMS от 1С, предоставляется на платной основе и в разных модификациях. Битрикс обещает интеграцию с 1С, но нужно подготовиться к тому, что не всегда это будет легко, просто и бюджетно. Лучше сразу обратитесь к разработчикам, чтобы сравнить структуры и версии 1С на сайте, в каталогах и вообще везде. Потому как если они отличаются, то скорее всего, придётся прибегнуть к нештатной интеграции. И если с коробочной интеграцией риски затянуть сроки и выйти из бюджета стремятся к нулю, то нештатная ситуация может вытянуть порядочно и нервов, и средств, и времени. При этом коробочный вариант срабатывает, как правило, для одного из трёх случаев.
  • WordPress – бесплатно распространяемая среда с открытым исходным кодом и встроенной системой многочисленных плагинов и тем (платных и бесплатных).

Этот список далеко не исчерпывающий. Поэтому если вы пользуетесь ещё чем-то и хотите об этом рассказать – добро пожаловать в комментарии под статьёй!

За и против CMS

За или против CMS?

Новый сайт может быть для вас очередной игрушкой или, напротив, жизненно важным проектом. Но независимо от его роли в вашей жизни, старайтесь принимать взвешенное решение насчет веб-разработки на CMS. Просто сравните все за и против, которые мы нашли:

За CMS:

  • Скорость. Если вам нужно стандартное решение, то шаблон с базовым функционалом можно создать и за 15 минут.
  • Простота. Работа с CMS требует от программиста минимального опыта, поэтому есть опасность – получить на выходе продукт несуразный и дающий сбои. Ведь кто знает, там настоящий профессионал работает или это студент с самоучителем под мышкой решил потренироваться?
  • Схожесть. Функционал разных CMS перекликается друг с другом, поэтому, разобравшись в одной системе, проще будет работать и в остальных.
  • Доступность. Благодаря скорости создания шаблона, результат получается сравнительно дешёвым.

Минусы CMS

Против CMS:

  • Ограниченность. Хоть у каждой CMS есть широкий функционал, большинство систем качественно решает весьма ограниченный круг задач. Зачастую приходится искать компромиссы и соглашаться с тем, что все ваши потребности не получится удовлетворить.
  • Шаблонность. Как мы и говорили, CMS – это один конкретный набор Лего, заточенный под определенную тематику. А если понадобится установить что-то новое, придётся снова привлекать разработчика. Практика показывает, что даже небольшие правки могут вырасти в полноразмерную интеграцию. Оно вам надо?
  • «Грязный» Код. Некоторые CMS занимаются самодеятельностью, автоматически генерируя строки ненужного кода. А чтобы его почистить, потребуется немало времени. И конечно, никто не захочет этим заниматься.

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

Эта модель может привести вас к великим свершениям, если вы перфекционист 80 уровня и делаете все последовательно, логично, при этом оставляя всех довольными…Но утопия продлится ровно до тех пор, пока директор или маркетолог не запросят что-то уникальное. И здесь мы хотим поговорить о Framework.

Framework («каркас» с английского) – это программная платформа, представленная набором библиотек. И если CMS похожа на Лего, то framework можно сравнить с 3D принтером – печатай что угодно, хоть тот же конструктор!

PHP фреймворки

Какие типы Framework бывают?

Надо отметить, что существует множество видов framework для различных языков – Java, Ruby, Python, Groovy и т.д. Нас же интересуют PHP «каркасы». Одни из самых популярных в нашей команде это:

  • Yii – бесплатный софт с большим количеством библиотек, помогает очень серьёзно сократить время разработки, поэтому используется для создания крупных веб-приложений.
  • Zend Framework – также свободно распространяемый продукт, позволяет использовать различные СУБД, использует принцип «слабого связывания» с минимальными зависимостями между частями проекта, что позволяет их легко корректировать по отдельности. Zend Framework 2 может похвастаться очень качественным исходным кодом вплоть до «академичности», масштабируемостью, высоким уровнем абстракции.
  • Laravel – и снова бесплатный framework, обещает избавить от «спагетти» кода, по сути скомпилирован из хороших решений других «каркасов», сопровождается качественной и лаконичной документацией с примерами.

За и против Framework

За или против Framework?

Конечно, и тут есть разнополюсные доводы. Мы приводим, ну а вы взвешиваете.

За Framework:

  • Высокий КПД. Быстрее «каркаса» летает только чистый PHP, который может и не обеспечивать должного уровня безопасности, поэтому framework в этом смысле оптимален.
  • Кастомизация. Если в случае с CMS мы собираем конструктор в предсказуемую форму и отойти от неё очень сложно, то с framework у вас есть возможность творить уникальности! Заказчик может запросить практически что угодно, и разработчики с удовольствием примут вызов.
  • Мотивация. Мы поспрашивали у своих прогеров, и они единогласно сказали, что работать с «каркасами» интереснее. А чем больше разработчику нравится проект, тем выше уровень исполнения.
  • Безопасность. В процессе сборки сайта с framework проще найти и устранить возможные дыры в безопасности. К примеру, за счёт использования ORM (Object-relational mapping, технология объектно-реляционного отображения), которая представляет собой прослойку между приложением и базой данных, можно снизить до минимума появление SQL-инъекций.

Против Framework:

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

Разработка сайта под CMS и Framework

Как мне лучше применить эти CMS и Framework?

А на сладкое предлагаем наш небольшой чеклист. Он поможет вам определить правильное направление при разработке следующего сайта.

Для каких проектов лучше использовать CMS?

  • Готовое решение с типовым функционалом.
  • Сайт-визитка.
  • Интернет-магазин со средней посещаемостью.
  • Сайт для малого и среднего бизнеса.

Для каких проектов лучше использовать Framework?

  • Нетиповое или уникальное решение.
  • Нешаблонная вёрстка.
  • Сайт с высокой посещаемостью и нагрузкой (highload).
  • Активно развиваемый, расширяемый и/или стихийно изменяющийся под требования рынка проект.

CMS или Framework

Принимая решение...

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

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

Поделитесь, будете ли вы пользоваться CMS/Framework на своем следующем сайте и чем пользуетесь сейчас?