Создание сайта. Выбираем CMS, Framework или разработка «с нуля». Фреймворк или cms
CMS или Фреймворк? Что выбрать?
Что выбрать для разработки фреймворк или CMS? Чем они вообще отличаются и какие преимущества и недостатки у фреймвоков и CMS.
Фреймворк
Фреймворк от английского слова "каркас". Фреймворк - это надстройка над языком, набор библиотек. Хорошо отлаженных и прекрасно взаимодействующих между собой библиотек
CMS (Content Management System, система управления контентом)
CMS(ЦМС) – это, по сути, уже готовый сайт, который нужно донастроить под свои нужды.
Ху из ху
Казалось бы, если фреймворк - это всего лишь набор библиотек, а CMS - это уже почти сайт, то к чему вообще этот глупый выбор? Но ведь если бы всё было так просто, то, очевидно, не было бы этой статьи и ты её не читал бы.
CMS значительно ускоряет разработку простого шаблонного сайта. У сайта сразу готова админка и её не надо писать отдельно, в отличии от разработки на фреймворке. Однако это скорость создания сайта достигается за счёт шаблонности, ограниченности или излишней универсальности CMS.
При желании расширить функционал, добавить что-то эдакое, возможно, придётся прямо воевать с CMS или идти на какие-то компромиссы. В случае с фреймворком, таких проблем нет. Да разработку уходит больше времени, однако любая задумка осуществима без каких-либо костылей.
В фреймворках зачастую только самый необходимые функции и хороший, отлаженный, отрефакторенный код. В CMS, особенно, если она предполагает сторонние модули, можно встретить дикий ад в коде и даже вредоносный код, который может, например добавлять ссылки на левые сайты в твой проект.
Ведя разработку с помощью фреймворка, ты сам строишь взаимодействие пользователя с функциями и данными и сам решаешь как это будет выводиться в браузер. В CMS это всё решили за тебя. Вероятно, это и неплохо, ведь если у разработчика недостаточно опыта, то с фреймворком или чистым языком можно наворотить такого, что в итоге CMS окажется очень хорошим вариантом.
Используя CMS, мы привязываемся к структуре, созданной разработчиками, но в шаблонных решениях экономим время, а в нешаблонных, зачастую, прозябаем на форумах в поисках ответов на "как так".
А Framework даёт полную свободу действий. За нас написали основу, фундамент, а дальше бери и твори. Но для качественной разработки на фреймворке необходимо обладать достаточным уровнем, чтобы не создавать откровенной непотребщины или, что ещё хуже, дырявого продукта.
Буду подводить итоги.
Плюсы CMS:
- Скорость. Шаблонное решение можно создать очень быстро.
- Готовая админка. На многих популярных CMS достаточно удобная и понятная админка
- Простота разработки. По большому счёту, чтобы создать простецкий сайт и навыками программирования и вёрстки обладать не обязательно.
Минусы CMS
- Ограниченный функционал. Шаг влево, шаг вправо карается расстрелом. Функционал допилить возможно всегда, но, вероятно, это будет просто межгалактический костыль.
- Избыточность. В погоне за универсальностью, разработчики CMS, чтобы угодить всем, закладывают столько функций, что скорее всего для одного проекта всё это не нужно. В итоге получаем много неиспользуемого кода.
- Сложное ядро. Порой, чтобы чуть поправить или видоизменить какую-то часть сайта, приходится разбираться с устройством системы.
- Сайт на CMS всегда уступает в производительности хорошо написанному сайту на фреймворке.
Плюсы фреймворка
- Гибкость. Можно реализовать любую задумку без "войны" с движком
- Производительность. Повторю: сайт на CMS всегда уступает в производительности хорошо написанному сайту на фреймворке
Минусы фреймворка
- Сложность разработки. Необходимо обладать достаточными знаниями, чтобы не нагородить дырявой какашки
- Отсутствие административной части. Раздел редактирования сайта нужно писать самому, а это, считай, ещё целый сайт.
- Время. Разработка занимает больше времени, чем разработка с помощью CMS
Минусы решаются переиспользованием ранее написанного кода.
То есть написав одному клиенту админку, скорее всего, для следующего клиента ты возьмёшь её же и, если надо, доработаешь. Но это уже начинает превращаться в CMS!
Когда лучше подойдёт CMS
- Шаблонное решение, которое покрывается возможностями CMS
- Быстрое, временное или недолгосрочное решение
- Для клиентов с небольшими бюджетами
- Сайт ради сайта. Клиенту просто нужен сайт и он не знает зачем
- Недостаточно опыта у разработчка
Когда лучше использовать фреймворк
- Нетиповой нешаблонный проект
- Активно изменяющийся или подстраивающийся под тренды проект
- Достаточно опыта, чтобы написать качественно на фремворке
Как мы видим CMS не проиграла это сравнение в одни ворота.
Да большинство специалистов выберет фреймворк, но иногда использование CMS кажется разумнее.
Я намеренно не рассматривал использование чистого языка для разработки, потому что времени на велосипеды будет потрачено ещё больше, чем на разработку на фреймворке, а качество, скорее всего, будет так себе. Каждый программист хочет и, наверное, должен написать свой фреймворк или CMS, но с опытом приходит осознание того, что умные дядьки уже очень много полезного за тебя понаписали и можно этим пользоваться.
----
Популярные cms
- WordPress
- Joomla
- Drupal
- Magento
- Bitrix
- Prestashop
- MODX
- OpenCart
Все эти CMS написаны на PHP. Это далеко не весь список. CMS в основном пишутся на php из-за того, что их можно "воткнуть" куда угодно, хоть на самый дешёвый хостинг.
CMS других языках
- taracot (nodeJS)
- KeystoneJS (nodeJS)
- Pelican (python)
- DjangoCMS (python)
- Refinery CMS (ruby)
- Riot (java)
Популярные фреймворки
- YII (PHP)
- Synphony (PHP)
- Laravel (PHP)
- Zend (PHP)
- Kohana (PHP)
- Ruby on Rails (Ruby)
- Django (python)
- .NET (C#)
- Express (nodeJS)
- Koa (nodeJS)
- Spring (java)
Конечно же это далеко не исчерпывающие списки. Каждый найдёт что-то по вкусу.
Ещё
mynrg.ru
Сайт на CMS, фреймворке или собственная разработка — что лучше?. Читайте на Cossa.ru
Чего хочет заказчик, когда обращается в агентство? Чтобы ему сделали сайт. Каким образом — вопрос второстепенный. Главное, чтобы в бюджет уложились, всё работало как задумано, а идеально — ещё лучше. Как задумано — значит удобно для пользователей, легко в управлении и безопасно.
У подрядчика в ответ на запрос клиента масса предложений. Рассмотрим, в каких случаях есть смысл создавать сайт на массовой CMS, а когда лучше пойти по пути уникальности.
Все сайты делятся на два типа
- Созданные на CMS — системах управления сайтом (неважно, самописных, бесплатных или массовых коммерческих).
- Сайты, функциональность которых задаётся программистами. Специалисты могут использовать только языки программирования или работать с фреймворками.
Сайт состоит из внешней и внутренней части. Внешняя — это дизайн и контент, внутренняя — это база данных и административная панель. При разработке сайта на CMS необходимо создать только внешнюю часть — дизайн, сверстать его и «натянуть на движок». А при самостоятельной разработке придётся создавать и всю начинку.
Весь интернет-маркетинг за 19 недель!
Cossa рекомендует: онлайн-курс по интернет-маркетингу от Ingate — digital-агентства с 17-летним опытом.
- 17 учебных блоков по ключевым вопросам интернет-маркетинга
- Поддержка менторов
- Диплом
- Cтажировка в топовых агентствах России
- Помощь в трудоустройстве
Реклама
Промежуточный вариант, который совмещает оба метода, — самописные системы управления контентом. В этом случае сначала с нуля создаётся скелет функций, а затем решение становится типовым, и уже на его основе создаются похожие сайты. Как правило, самописные CMS используются для решения довольно узких задач.
Проведём аналогию с автомобилем
- Собственная разработка — это создание машины с нуля, изобретение.
- Разработка на фреймворках — сборка машины с помощью готовых работающих узлов и запчастей.
- Сайт на самописных CMS — авторский автомобиль, который затем воспроизводится.
- Сайт на массовой CMS — универсальный серийный автомобиль промышленного производства.
По сути, мы видим переход от штучного продукта к рыночному, от индивидуального — к массовому производству. Причём у каждого варианта свои преимущества и недостатки.
Массовая CMS
Системы управления контентом, которые созданы компаниями-разработчиками, бывают как платными, так и бесплатными.
Бесплатные CMS ограничены по набору функций и технической поддержке, обычно используются для создания личных или небольших корпоративных сайтов. Нередко имеют проблемы с безопасностью, поэтому для создания серьёзных проектов не рассматриваются.
Коммерческие CMS — это мощные, универсальные системы для разработки разных типов сайтов с защитой и техподдержкой.
Когда подходит
- Вам не нужны специфические функции.
- Проект не предполагает высокой нагрузки.
- Ограниченный бюджет.
- Сжатые временные рамки.
- Нужен простой и понятный инструмент.
На массовой CMS можно создать все основные виды сайтов. Большинство систем состоит из модулей. Наборы таких модулей составляют редакции сайтов: корпоративный сайт, визитка, каталог, интернет-магазин, блог, портал и так далее. Это самый распространённый и простой способ сайтостроения.
Преимущества
- Легко изучить и настроить стандартный сайт. Не нужно знать языки программирования.
- Подключаемые модули. Можно расширять возможности за счёт плагинов.
- Быстрая скорость разработки. Основная часть работы уже сделана, от вас нужен контент, дизайн и настройка.
- Техническая поддержка. Компании-разработчики поддерживают собственные продукты.
- Полноценная документация. Для массовых коммерческих CMS легко найти всю сопутствующую документацию.
- Есть API. Готовые платформы имеют проработанный интерфейс прикладного программирования, который позволяет интегрировать ресурс с другими сервисами.
У готовых платформ, как правило, есть интерфейс прикладного программирования, который содержит много классов, структур, функций и прочих элементов. Всё это позволяет интегрировать ресурс с внешними программными сервисами.
Недостатки
- Ограниченная функциональность. Как правило, у каждой CMS своя специализация, которую, впрочем, можно расширить за счёт редакций.
- Невысокая производительность. Это плата за универсальность. В движке заложены широкие возможности, что дополнительно нагружает сервера.
- Избыточность некоторых модулей. Бо́льшая часть возможностей может вообще не использоваться.
- Уязвимость. Поскольку основная масса коммерческих сайтов сделана на популярных коробочных версиях CMS, именно на них направлены атаки.
Самописная CMS
Далее рассмотрим системы управления контентом, разработанные отдельным программистом или студией. Это аналоги массовых CMS, но имеют небольшое распространение, даже если продаются. Могут создаваться на заказ.
Если массовые CMS — это универсальные решения, то самописные версии — продукт индивидуальной разработки. Обычно заточены под решение конкретных задач.
Когда подходит
- Готовые решения вам однозначно не подходят.
- Вы уверены в разработчике самописного движка.
- У вас есть время и деньги на разработку.
Самописные CMS чаще используют для специфических проектов, когда требуется повышенный уровень безопасности, гибкость или, наоборот, простота в работе. Примером могут служить движки, разработанные для онлайн-СМИ. Они лишены громоздкости массовых систем и при этом могут обладать функциями управления контентом, которых нет в обычных движках.
Такие CMS очень кастомизированные. Как правило, обладают специальным интерфейсом, который удобен для редакторской работы. В этом случае переделка обычной CMS обошлась бы дороже и велась бы дольше, нежели собственная разработка.
Преимущества
- Можно продумать функции сайта под конкретный проект.
- Нет плагинов и расширений, которые требуют обслуживания и утяжеляют сайт.
- Ниже вероятность взлома, исходный код будет только у вас и разработчика.
- Выше производительность, поскольку нет лишнего кода.
- Проще управление — можно включить только те элементы, которые вам необходимы.
Недостатки
- Привязка к конкретному разработчику. Все обновления и техподдержку придётся проводить через него.
- Высокая стоимость проекта. Придётся оплачивать услуги опытных программистов или студию.
- Качество продукта полностью зависит от квалификации исполнителя, а грамотных и опытных профессионалов найти сложно.
- Зачастую нет полноценной документации, поскольку проекты изначально строятся под заказ и не рассчитаны на массовое использование.
- Сложности с технической поддержкой. Если исполнитель вдруг пропадёт, вы столкнётесь с большими проблемами.
- Нет API. Для любой интеграции придётся создавать уникальные решения, что выльется в затраты времени и финансов.
Разработка на фреймворках
В переводе с английского framework — каркас, остов, структура. В разработке это готовая надстройка над «чистым» языком программирования. Фреймворк выполняет две задачи: задаёт архитектуру и позволяет подключать дополнительные модули и пакеты, за счёт чего можно расширять функциональность проекта.
Фреймворк — это набор отлаженного кода для решения конкретных задач, которые чаще всего стоят перед разработчиками. Если при разработке на CMS вы отрезаете все лишнее, то здесь всё наоборот: «лепите» сами из готовых блоков. Во многих случаях такой подход является более эффективным и оправданным.
На основе фреймворков можно разработать отдельное веб-приложение, сайт и даже CMS. Фреймворки существуют для всех языков программирования, бывают самописными и студийными. Наиболее популярные представители: Yii, Zend Framework, Symfony2, Laravel, Phalcon, Codeigniter, Kohana.
Когда подходит
- Проект с высокой нагрузкой — когда производительность сайта критически важна.
- Необычный, нешаблонный проект. Тот случай, когда лучше создавать что-то самому, чем переделывать.
- Проект будет активно изменяться и подстраиваться под тренды и ваши потребности.
- У вас, как у заказчика, достаточно опыта и есть чёткое понимание, каким должен быть проект и его особенности.
Разработка на фреймворках сложнее, чем на CMS, и требует высокой квалификации как от разработчиков, так и от заказчика. Необходимо подобрать специалиста, оценить его опыт и чётко поставить перед ним задачи. Гибкость разработки на фреймворках открывает массу возможностей, но между тем приносит определённые сложности.
Преимущества
- Высокая производительность. Меньше лишних элементов — быстрее работа.
- Большая степень индивидуализации для решения конкретных задач.
- Отлаженный код и безопасность. Фреймворки постоянно тестируют на ошибки.
- Гибкость. Можно легко решать даже нестандартные задачи, при этом разными путями.
- Доступность дополнений. Можно использовать в работе готовые пакеты и библиотеки.
Недостатки
- Сложность — разработчику необходимо обладать высокой квалификацией.
- Нет административной части — раздел редактирования нужно создавать самостоятельно.
- Нужно много времени — сроки значительно увеличиваются.
- Высокая стоимость разработки.
- Дорогое обслуживание. Развитие сайта также будет стоить дороже, поскольку каждый раз придётся привлекать специалистов.
Собственная разработка
Под собственной разработкой понимается создание сайтов на языках программирования, например, на чистом HTML или PHP. При этом вся функциональность прорабатывается с нуля.
Когда подходит
- Вам нужен уникальный нетипичный проект, а время на его разработку не ограничено. Разрабатывать сайт полностью с нуля оправдано, когда вы создаёте что-то нетипичное, чего нет на рынке, и уверены, что затраты окупятся. Возможно, это проект, на котором планируется обработка огромного количества данных и сверхсильные нагрузки.
- Сайт должен стать конкурентной фишкой компании. Если вы хотите внедрить на сайт уникальную и сложную функциональность. Например, у вас интернет-магазин: чтобы отличаться от конкурентов, вы планируете внедрить поиск товара по картинке или ссылке. Или хотите удивить пользователей тем, что они могут покупать товары с помощью голосового интерфейса.
Преимущества
- Вы получите набор функций, о котором пожелаете.
- Высокая производительность.
- Полный контроль разработки.
- Свобода творчества — вы ограничены только возможностями языка разработки.
Недостатки
- Большие временные затраты.
- Требуется высокая квалификация и опыт разработчиков, поскольку им придётся создавать все с нуля.
- Нужен большой бюджет.
Чтобы владеть чем-то уникальным, нужно вложить много ресурсов. Без команды опытных программистов — никуда.
Идеально, если вы готовы держать собственный штат разработчиков, которые в любой момент смогут исправить ошибку, доработать функцию или внедрить новую.
Хорошо, если у вас есть бюджет на агентство. Однако в последнем случае процесс становится не столь гибким. К тому же агентств, которые готовы взяться за создание «велосипеда», на рынке не так много.
Лидеры рунета всё делают сами
В первую очередь — на цели проекта и ваши возможности. Давайте обратимся к опыту рынка. По данным Data Insight, в основе более чем половины крупных интернет-магазинов — собственная разработка.
Похожая ситуация с крупнейшими сайтами рунета — из топ-100 подавляющее большинство работает либо на самописных CMS, либо разработаны на фреймворках или языках программирования.
Лидеры рынка — это всегда высоконагруженные, нестандартные проекты с уникальной начинкой. Ещё один важный нюанс: большинству крупных сайтов уже много лет, и на момент их создания не было достаточно продвинутых массовых CMS.
Но это не значит, что массовые CMS проигрывают
Во-первых, подавляющее большинство сайтов — а их миллионы — всё же работают на CMS. Во-вторых, ещё недавно собственная CMS была у каждой студии. Даже мы в Uplab создавали собственную CMS, но по ряду рациональных причин перешли на Битрикс.
Мы уверены, что сделали верный выбор. Поддержка собственной CMS отнимала много сил, а результат не всегда радовал. Битрикс продолжает набирать обороты и сейчас занимает верхние строчки в рейтинге CMS Magazine.
Какой бы метод вы ни выбрали, делайте это осознанно, тщательно оценив риски, сроки и бюджет.
Читайте также:
Мнение редакции может не совпадать с мнением автора. Ваши статьи присылайте нам на [email protected]. А наши требования к ним — вот тут.
www.cossa.ru
Что выбрать Framework или CMS
Вопрос на чём написать сайт на framework или cms так или иначе встаёт перед разработчиком. Разумеется пока вы знаете только одну cms вас он мало волнует, так как выбирать приходится лишь из одной.
На многих сайтах авторы пытаются ответить на вопрос, но после прочтения остаётся ещё больше вопросов. В этой статье попытаюсь обосновать как я делаю выбор в пользу одной или другой cms или фрамеворка.
Данный пост не претендует на истину в последней инстанции, сколько людей столько и мнений. Итак, ближе к делу
Перед вами встаёт задача разработать сайт и первое что вам требуется это оценить заявленный функционал, а именно на сколько он типовой. Если согласно т.з. сайт не является уникальным, то следует ограничить свой выбор cms, так как разработка на них будет куда быстрее чем используя framework. Фраймворки более подходят для сайтов с «особенной» структурой, но нужно понимать, что разработка займёт больше времени и по цене это должно быть оправданно.
Главный плюс использования фраймворков это возможность целиком и полностью исключить из будущего сайта не нужные функции, что существенно ускорит его работу (хотя тоже не факт, зависит от выбора)
Если же вы выбираете среди cms, то:
Первое: что нужно сделать это определить тип сайта: магазин, лендинг, сайт фирмы… Это поможет существенно сузить круг поиска.
Второе: проанализировать отобранные cms на лидирующие по следующим признакам:
-
наличие качественной документации;
-
ценника на модули или плагины и на саму cms;
-
количество готовых решений под данную cms (компонентов, модулей, плагинов) Будет не приятно что-то делать вручную когда на другой cms это идёт в коробке;
-
частоту её поддержки;
-
уровень вхождения (на сколько сложно вам будет с ней работать)
Вывод: fremework подойдёт для уникальных проектов с не типовым набором функций, причём ценник на этот сайт довольно высокий и сроки не поджимают.
Стоит выбрать CMS в случае если большинство заявленных функций идёт в коробке причём, выбранная cms является одна из лучших среди других для данного типа сайтов.
liblessons.ru
Создание сайта. Выбираем CMS, Framework или разработка «с нуля» — RU
Обращаясь в любую компанию по разработке сайтов/сервисов Вы должны понимать, какой подход будет реализовывать команда, иначе можете столкнуться с большим кол-вом проблем в будущем. Выбор правильного подхода залог сэкономленного времени и средств.
CMS или фреймворк
CMS
CMS — система управление контентом, позволяет значительно упростить и ускорить разработку стандартных проектов: сайта-визитки, корпоративного сайта, интернет магазина…CMS очень хорошо использовать по назначению, т.е. именно для того чего она предназначалась, так если Вы хотите создать новостной сайт или интернет магазин то использовать лучше CMS т.к. изобретать велосипед здесь не стоит, большинство систем достаточно хорошо будут с ними работать.
CMS лучше всего использовать при:1. Ваш сайт/сервис это стандартный корпоративный сайт, интернет магазин, сайт-визитки и при этом у Вас нету значительных требований к доработкам.2. Ваш сайт/сервис повторяет логику работы используемой Вами CMS. Так существует большое количество CMS для сайтов знакомств, интернет-магазинов, купонных сервисов и т.д., т.е. не изобретайте велосипед, просто берите и пользуйтесь!3. Популярность CMS позволит достаточно быстро найти разработчиков для нее.
Какие есть минусы:1. Популярность CMS (можно и в плюсы) они по своей сути “комбайны”, которые очень тяжелые. Для нормальной работы готовьтесь ставить отдельные сервера для сайта или очень хороший VPS сервер (при большом кол-ве посетителей).2. Чем больше модулей Вы подключаете к сайту — тем более проблемно начинает работать Ваш сайт.3. Поддержка проекта достаточно проблематичная штука и чистоту кода получить крайне сложно.
Если подвести итог: CMS хороша, чтобы ооочень быстро запустить сайт, сервис и при этом не сильно изменяя логику системы для проверки жизнеспособности идеи. А вот если у Вас что-то нестандартное или Вы планируете постоянные доработки, тогда Вам подойдет лучше всего следующий подход.
FRAMEWORK
Фреймворк позволяет упростить жизнь в долгосрочной перспективе, если Вы считаете, что у проекта есть все шансы достигнуть успеха и у Вас есть значительные планы по доработкам, тогда это идеальный для Вас вариант.Какие плюсы Framework?Наша команда использует Framework Yii2, но эти пункты легко подходят к другим популярным framework:1. Достаточно быстрый запуск проектов, относительно CMS. Конечно, разработка на фреймворке будет медленней, но, Вы получаете только то, что необходимо для сайта/сервиса и у Вас нету необходимости наблюдать тонну лишних элементов “комбайна”.2. Безопасность проекта. Использование фреймворка позволяет значительно улучшить безопасность относительно CMS и использования3. Удобство доработок функционала и чистота кода.4. Скорость работы сайта будет значительно выше при сопоставимом количестве посетителей и одинаковом сервере.Легко поменять команду разработчиков, т.к. ядро системы не меняется и код читается достаточно легко (хотя и здесь можно напортачить).В нашей команде hix.one мы используем этот подход в большинстве случаев, хотя и работаем с CMS WordPress в случае если используются полностью стандартные функции.
РАЗРАБОТКА “С НУЛЯ”
Сейчас мы подходим к самому сложному и дорогому способу реализации сервиса. Здесь компетенции разработчика должны быть самые высокие, т.к. если изначально будет заложен неправильная структуру = ждите проблем, Вы потом этот код нигде не сможете применить и как бы печально не было — далеко уехать не получится.Но, стоит признать и достоинства, при соблюдении высоких компетенций ведущего разработчика:1. Скорость работы будет выше чем при использовании Framework2. Можно крутиться как угодно. Вы пользуетесь только тем, что Вам необходимо.Минусы1. Перейти к другому разработчику достаточно сложно, т.к. требует время на “вход”.2. Необходимо достаточно строгое документирование кода иначе потом там черт ногу сломит 3. “Дыры” в безопасности, а точнее необходимость это очень серьезно контролировать.Стоимость разработки в этом случае значительно выше относительно того, что может предложить Framework
Тем кому лень читать посвящается. CMS используется там где уже 100500 аналогов (сайты визитки, интернет магазины…) и Вы не планируете серьезных изменений по коду; Framework — вы хотите сделать хороший сайт/сервис с расчетом на достаточное количество “фишек” с оптимальным соотношением цена/время/качество; Чистый PHP — поздравляю у Вас очень серьезный проект, который требует кропотливой и серьезной команды разработчиков, которые смогут сделать качественное ядро Вашего сайта/сервиса.
hix.one
Что выбрать для проекта CMS или Framework? CleverMan.org
Итак, в чем отличие CMS от framework? Постараюсь говорить простым и понятным для большинства языком. CMS - это готовый программный шаблон для создания сайта. А именно, он уже обладает богатым набором функционала из коробки: админка, система регистрации, авторизации и аутентификации; система ролей для пользователей и настройка прав; готовый шаблон с блоками и панелями; множество предустановленных модулей, которые позволяют получить богатый функционал (блоги, форумы, голосовалки, соц. сети, галереи, доски объявлений и т.д.). При этом можно создавать прямо из админки сайта новые страницы, поля для форм, целые разделы и типы данных, настраивать ссылки, алиасы и много вообще еще чего. У каждой CMS есть свое огромное сообщество, которое каждый день выпускает новые решения, новые модули, шаблоны и другие интересные ништяки.Казалось бы, вот он рай неземной. Но не все так радостно, как может показаться. И чем более квалифицированный программист, чем больше у него опыта и знаний, тем меньше ему хочется работать с CMS. Я не беру во внимание безнадежных фанатов! На то они и фанаты и доводы тут бессильны.
Итак, обратная сторона красивой медали. А вот она уже очень некрасивая! Чтобы все это буйство решений работало в одной связке, нужен очень строгий и типизированный механизм. А если конкретнее, то ядро системы должно иметь механизмы, позволяющие подключать разнообразные модули, которые будут сразу же работать после включения. А это означает, что структура модуля должна быть строго типизированная, конкретно под свой CMS. И будет работать только под ее управлением и только той версии, под которую написан этот модуль. Система хранения данных в базе уже определена, и поэтому необходимо следовать стандарту. Система шаблонов также строго типизирована. Для того, чтобы все красиво состыковывалось и работало, созданы системы таких жутких костылей, что иногда на это без слез смотреть нельзя.
Когда вы захотите получить для своего проекта функционал, которого не существует из коробки, то вам придется создавать свой модуль или модули. При этом вы неизбежно столкнетесь с тем, помимо того, что необходимо строго следовать стандарту конкретной CMS, что вам все время придется придумывать свои костыли, чтобы обойти множество ненужных вещей, которые будет вам навязывать ядро. Для примера, вы хотите убрать из какой-то формы регистрации часть описания, или изменить внешний вид поля, или изменить обработчик, на который нужно повесить свой дополнительный функционал. И вот тут вы начнете скакать на граблях. Любая кастомизация, в том числе и внешнего вида, принесет вам очень много головной боли. Вы столкнетесь с тем, что в шаблон для рендера передается такое количество "мусора", что не совсем понятно, почему он называется шаблоном. Перехват данных до вывода в шаблон, перехват данных после вывода в шаблон, перехват данных в момент создания формы и еще сотни всяких приколов.
Вместо создания собственного функционала, вы будете большую половину времени тратить на борьбу с CMS, читать сутками мануалы, искать в интернете решение проблемы вылазящих ото всюду багов. Или как обойти то или иное ограничение. Вольетесь в сообщество и превратитесь в адепта системы. Другими словами, вы будете не свой код создавать для себя и заказчика, а будете придумывать 1000 + 1 способ, как обойти ограничения или избыточность CMS.
Что же такое Framework? А это уже полуфабрикат, который представляет из себя только набор минимально необходимого функционала, который реализовывает ряд популярных паттернов. Например, MVC, который уже по умолчанию является стандартом при создании сайтов. Как правило, из коробки нет ничего. Но зато у вас в руках появляется мощный инструмент. Вы можете создать такую архитектуру вашего проекта, которую хотите. Создать структуру базы данных именно так, как вам необходимо. В ваш шаблон вы выводите только то, что вам нужно, а сам шаблон - это действительно шаблон, а не каша из php и html кода. Все настройки вы храните в файлах, а не в базе. Ваш проект легко переносить из одного сервера на другой. В наличии всегда миграции, которые позволят развернуть проект с нуля за пару минут в любом месте. Все маршруты к страницам хранятся в файле роутов, а не в базе. Другими словами, вы полностью сосредотачиваетесь на процессе разработки и осуществления ваших задумок. Сам framework не будет вас заставлять делать только так или этак. Но вам придется следовать определенным правилам, которые логичны, адекватны и помогают улучшить и ваш код, и структуру вашего приложения.
Помимо этого, для фреймворков существуют свои готовые решения для конкретных задач, которые можно установить через composer. Очень часто можно адаптировать решения от одного фреймворка к другому. К примеру, бандлы от Симфони присутствуют практически в каждом php фреймворке. Но установить пакет/модуль/бандл и т.д. и включить его кликом мышки не получится. Придется сделать подключение провайдеров в коде, что-то настроить. В своих контроллерах подключать фасады или классы. Другими словами, разрабатывать свой код, при этом отдавая часть заботы о функционале установленным решениям.
Какой вывод из всего этого можно сделать. Если ваш проект - это простой сайт, который не требует глубокой кастомизации, при этом нужно много разных плюшек, за которые заказчик не особо хочет платить, и нужно создать все уже на вчера, то CMS тут вне всякой конкуренции. Здесь даже без вопросов. Но если вы делаете проект, который будет постоянно дорабатываться, для которого нужно писать свои решения, нужен гибкий дизайн и всякие плюшки, да еще и нагрузка на сайт ожидается существенная, то тут однозначно выигрывает фреймворк. Так как вы сосредоточитесь именно на разработке того, что нужно именно вам, а не на борьбе с тем, что вам не нужно.
Думать и решать вам, но пища для размышлений есть. Всего хорошего, всем удачных проектов.
cleverman.org
Cms или фреймворк
Система управления контентом – программное обеспечение для создания и поддержки веб-сайта. Готовое решение для реализации типовой задачи. Если вам нужен небольшой сайт, преследующий одну конкретную цель, CMS – это верный выбор. В среде разработки предлагается множество продуктов для решения таких узкоспециальных задач, различающихся только содержимым без изменений в каркасе. Строя свой сайт на CMS, нужно подбирать структуру, подходящую по целям и контенту, например:
- блоги,
- сайты-визитки,
- онлайн-магазины с невысоким уровнем посещаемости,
- сайты для малого бизнеса,
- форумы,
- справочники и т. п.
Большинство CMS бесплатны, некоторые стоят денег. Применение систем управления контентом для разработки стандартного сайта не требует финансов, а затраты времени сводит к 15 минутам. Уровень знаний – пользовательский, а если есть опыт работы с CMS, то работать будет еще проще и эффективнее.
Виды CMS:
- Joomla – бесплатная система, ежемесячно обновляемая. Проста для любого уровня пользователя. Поддерживается набором готовых модулей.
- Drupal – универсальная и бесплатная. Сайты любых видов и задач. Требует умений.
- MODx – эффективная система, бесплатна, но сложно справиться без опыта.
Битрикс – многофункциональная CMS от 1С, не бесплатна. Основное преимущество – интеграция с продуктами 1С, что должно обеспечить эффективность в эксплуатации. Требовательна к уровню пользователя и даже может потребовать специальных знаний.
WordPress – бесплатная среда с открытым кодом и поддержкой плагинов и дополнений (платных и бесплатных).
Ограниченность и шаблонность – минусы CMS, но использование их не ограничивается только предложенным функционалом. Системы управления контентом написаны чаще всего на языке программирования PHP, а потому допускают некоторые изменения. Но количество таких доработок должно быть минимально. Разработчику нужно помнить, что если при решении задач вносимых изменений в структуру много, удачно выполнить проект на CMS не получится. Или реализованный результат будет неприемлемым. И это приводит к…
FrameWork (CMF – Content Management Framework)
Фреймворк (каркас) – программное обеспечение, представляющее собой набор библиотек. Более высокий уровень разработки, который решает задачу уникальности проекта, недоступную для CMS. По сути фреймворк – это набор инструментов, позволяющих сконструировать что-то свое, особенное, под индивидуальные требования заказчика. Кстати говоря, ту же самую систему управления контентом.
Если подобрать готовое решение среди доступных и в большинстве бесплатных систем сложно, если на сайте требуются особые компоненты, которых нет в CMS, то ваш выбор – фреймворк.
Преимущества FrameWork:
- высокая эффективность. Скорость «каркаса» превышает только сам язык программирования PHP, это важный параметр для проектов, нацеленных на высокую посещаемость;
- безопасность. В процессе сборки сайта уровень безопасности и защиты контента оптимален при использовании framework, в отличие от того же PHP, где придется задумывать об этом отдельно;
- кастомизация. Конструктор позволяет оторваться от типичности CMS и получить уникальный продукт с узнаваемым стилем или торговой маркой;
- мотивация. Немаловажный фактор при обращении к разработчику. Скучный проект на CMS снижает заинтересованность программиста и качество получаемого продукта. Работа с FrameWork повышает уровень исполнения и может привести к очень интересным решениям.
Однако у фреймворк есть и свои минусы. Главный из них – сложность, сходу с библиотеками не разобраться, нужен опыт разработок, доведенных до конечного результата. Таких специалистов меньше, следовательно, работа с framework обойдется заказчику дороже.
yourfuture.com.ua
Какую CMS или фреймворк выбрать для сайта
Что такое CMS? Система управления содержимым (контентом) (англ. Content management system, CMS) — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления содержимым, иначе — контентом (от английского content). В нашем случае контентом сайта.
Для сайтов CMS создано очень очень много. В принципе можно использовать любую. Но чем менее известна CMS – тем дороже разработка и поддержка. А то, что вам нужно будет дальше работать с сайтом, а возможно переделывать целые блоки, можете не сомневаться.
Самописная
Это самый плохой для вас вариант. Зачем вам предлагают самописную ЦМС? Ответ очень прост. Чтобы привязать вас на всегда к себе. Я называю такие сайты одноразового использования. Если это простой лэндинг на пару месяцев для промо компании, то это еще допустимо. Но если это проект на долгую перспективу – то тут вы заложник этого программиста. Он может вам говорить почти любой ценник на свои услуги и вы должны будете согласиться, ведь никто кроме него не понимает, как эта система работает. Есть такое правило – лучше иногда построить новый дом, чем делать реконструкцию. С кодом такая же проблема. Если программист не смотрел свой код больше 3 месяцев, то он начинает разбираться в нем заново. Но он хотя бы знает свои принципы работы. Разобраться же другому специалисту в чужом коде занимает в два раза больше времени, чем написать новый. Поэтому поддержка такой системы очень проблемное мероприятие. Мы, например, вообще не берем такие проекты в работу. Потому, что мы не можем гарантировать безопасность и стабильность работы. Весь код инспектировать, если это большой проект, просто не возможно.
Обычно в таких случаях, если программист или компания у которой вы заказывали проект, прекращает работать, вам скорее всего нужно будет начинать делать новый сайт.
Вордпресс
Это ЦМС на которой в мире работает около 30 процентов всех сайтов. Она очень проста в использовании для вас, легко обучить пользователя, как вносить изменения и добавлять новый контент. И вам будет очень просто найти другого программиста для дальнейшей доработки сайта или внесения изменений.
Плюс стоимость работы такого программиста, также будет одной из самых низких на всех фриланс биржах. Система очень гибкая, легко поддается изменениям. И что самое главное, под нее написано огромное количество бесплатных и платных плагинов, которые смогу очень сильно расширить функционал сайта. Это и модуль, который делает из обычного сайта интернет магазин. Это и рассылка писем по базе ваших клиентов, различные галереи, плагины для добавления нескольких языков на сайт, ускорители, SEO плагины, форумы, социальные сети. Почти все, что может делать сайт – можно сделать при помощи установки нужного плагина. Такого нельзя сделать в самописной системе. Там за все нужно будет заплатить разработчику.
Опенкарт
Это система заточенная под интеренет магазин. Это такой же Вордпресс, но для интернет магазинов. Тут тоже есть много плагинов. И вам тоже достаточно легко будет найти программиста, для ведения и поддержки вашего проекта. Большим плюсом является бесплатная лицензия на использование.
Yii, Symphony
Если вам нужен проект сложнее, чем обычный сайт или простой интернет магазин, то вам нужен фреймворк. Что это такое?
Фре́ймворк (иногда фреймво́рк; англицизм, неологизм от framework — каркас, структура) — программная платформа, определяющая структуру программной системы; программное обеспечение, облегчающее разработку и объединение разных компонентов большого программного проекта.
Если говорить очень грубо – это определенные стандарты написания кода.
С помощью фреймворков возможна реализация любых бизнес-процессов, а не только тех, которые изначально заложены в систему. Также проекты на базе фреймворков легко масштабируемы и модернизируемы.
Решения на фреймворках, как правило, работают значительно быстрее и выдерживают большую нагрузку, чем CMS и самописные системы. Именно поэтому много популярных интернет-магазинов работают не на коробочных CMS, а на фреймворках. По уровню безопасности решения на фреймворках значительно превосходят самописные системы и сравнимы с CMS (как правило, сайты на фреймворках даже безопаснее).
Стоимость разработки и поддержки тут самая высокая, потому что вам нужен человек, который разбирается в таких вещах. А этих людей значительно меньше, чем в случае со стандартными CMS. Но ведь вам и нужен не просто блог, а сложный сайт. Поэтому стоит быть готовым к высоким ценам за работу, профессионалы стоят дорого. Если вы выбираете программиста для такой работы обязательно попросите его показать проекты написанные на нужном вам фреймворке. Это уже будет означать, что он уже решал подобные задачи и он не будет учиться на вашем проекте.
spark.ru