Платформы для создания сайтов: CMS, фреймворки и SaaS-решения. Фреймворк cms
Cобрать лучшее из двух миров — фреймворков и CMS (часть 1) / Хабр
Получилось создать что-то среднее между фреймворком и, собственно, CMS, как раз то, что нужно для разработчика, и хочу поделиться этим с сообществом.
Уверен, многим не хватало именно такого решения, это подтверждается многочисленными вопросами на том же Тостере и долгими ветками комментариев под ними.
Обязательно нужно объяснить почему
Сложность, избыточность, гибкость, функциональность и скорость.Я не нашел решения, которое имело бы удовлетворительный для меня баланс этих параметров (безопасность тоже, но это очевидно и подразумевается само собой изначально). CleverStyle CMS — это не CMS в привычном смысле, это CMF, выше фреймворка по уровню архитектуры но ниже и гибче CMS. В связи с таким позиционированием получилось очень удобное решение в первую очередь для разработки уникального функционала, так как есть большинство необходимых инструментов, за которыми не нужно далеко идти, не нужно настраивать, а можно сразу использовать и получать результат. Отличия в сравнении с фреймворком:
- существенно меньше слоев абстракции
- как следствие проще и прозрачнее структура
- как следствие более высокая скорость работы и меньше потребление памяти (ядро отрабатывает за 2-4 мс и кушает около 1 МиБ памяти в пике, остальное зависит от разработчика конечного функционала)
- не предполагает сборки из разнообразных компонентов — всё уже собрано и адекватно настроено
- нет централизованного конфига маршрутов, каждый компонент хранит всё в себе
- простота — благодаря более низкому уровню абстрактности кода порог входа значительно ниже
- все части ядра подогнаны, при необходимости пропатчены, и гарантированно работают вместе, это не просто набор произвольных библиотек, а единое функциональное целое
- из коробки никакой специфической функциональности, только ядро и больше ничего
- как следствие добавляется только необходимая функциональность
- как следствие более высокая скорость работы и меньше потребление памяти
- так же выше гибкость — настраивается и хакается буквально всё
- практически не существует вида сайта, который нельзя сделать из-за архитектурных ограничений
- поддержка вещей более характерных для фреймворков, например подхватывается composer, есть Restful API
Сложность, избыточность
Мне всегда не нравились файлы вида:<?php namespace Acme\DemoBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class AcmeDemoBundle extends Bundle { } Это чуть меньше чем полностью бесполезный файл не несущий никакой полезной нагрузки, это шаблон, а шаблоны должны подразумеваться по умолчанию, если не менять шаблон — его не нужно и создавать. Поэтому в CleverStyle CMS подобные шаблонные штуки не нужны, вы пишете код только тогда, когда он делает хоть что-то полезное.Как пример — вам практически никогда не нужно прописывать вручную подключение CSS/JS/HTML файлов на страницах — можно в простом JSON указать на каких страницах они нужны — система сделает это автоматически, а можно не указывать — тогда файлы будут подключены на всех страницах сайта (что иногда тоже вполне себе вариант).
Хотите Hello, world! — прямо так и пишете в index.html, ложите файл в папку модуля, включаете модуль в админке, он готов к работе. Не нужно кучи вложенных папок, шаблонных контроллеров и прочего — просто файл с контентом.
Нет бесконечных конфигов — есть один маленький базовый с настройкой доступа к БД, хранилищу, кэшу, указан базовый часовой пояс, базовый язык сайта, и ключи которые используются для соли пароля и для шифрования — критически важные параметры, которые нужны для запуска ядра. Параметры прописываются на этапе установки, большинство генерируется/определяется автоматически. Все остальные возможные параметры настраивается в графическом интерфейсе и хранятся в БД.
Настройки компонентов тоже хранятся в БД, и очищаются при удалении компонента, для управлением конфигурацией компонента есть предельно простой внутренний API — параметры задаются как свойства объекта.
Маршруты тоже работают максимально просто, в общем виде выглядит так: api|admin/Module_name/level_1/level_2, при этом всё кроме Module_name необязательно и используется только когда нужно. На каждом уровне маршрута есть ответственный файл, который отрабатывает свой уровень, но если обработка нужна только на следующем уровне — на текущем обаботку можно пропустить. Сами уровни описываются одно- или двумерным массивом в формате JSON:
{ "level_1" : [ "sublevel_1", "sublevel_2" ] } При открытии страницы admin/Module_name/level_1/sublevel_1 отработают следующие файлы при наличии:- admin/index.php
- admin/level_1.php
- admin/level_1/sublevel_1.php
- PHPMailer — единственный файл, в котором есть всё для отправки почты, для поддержки SMTP нужен ещё один файл
- PHPT тесты — запускаются из одного файла, писать и читать тесты просто (не зря их используют в разработке самого PHP, и, например, в модифицированном виде в HHVM), в отличии от монстра PHPUnit
Функциональность, скорость
Из коробки система понимает что бывает несколько БД, они могут быть разными, у них бывают зеркала, умеет случайным образом балансировать запросы между зеркалами (можно отправлять запросы на запись на мастер, а чтение на зеркала). Аналогично поддерживается несколько хранилищ для статики.
Поддерживается многоязычность интерфейса и содержимого, ядро (и базовые компоненты, ниже) из коробки использует это везде где применимо.
Есть пользователи группы пользователей, разрешения, которые можно назначать как группам, так и на отдельным пользователям, поддерживаются связи между пользователями (простая система контактов).
Есть интерфейс отправки почты, в том числе с вложениями и прочими нужными возможностями.
Повсеместное кэширование — в подавляющем большинстве запросов ядро даже не соединяется с БД, так как кэшируется всё, что имеет смысл кэшировать.
На фронтенде подключены jQuery, UIkit, Polymer (+ WebComponents.js), они настроены работать вместе (это не всегда тривиально, учитывая веб-компоненты). Веб-компоненты используются наравне с обычным CSS/JS кодом, система понимает HTML импорты, можно использовать Paper Elements и любые сторонние готовые компоненты с легкостью.
Зависимости между компонентами (обязательные и не очень) автоматически влияют на порядок включения CSS/JS/HTML файлов на странице, так что у вас всегда будет предсказуемый и правильный порядок инициализации файлов.
CSS/JS/HTML файлы минифицируются, объединяются, жмутся с помощью gzip в отдельные файлы, которые подключаются всё так же с учётом зависимостей, система делает всё сама, в том числе выставляет заголовки для правильного кеширования файлов браузером и/или CDN.
Все создаваемые файлы и записи в БД контролируются, таким образом производительность является контролируемой и предсказуемой. Это дает комфортное ощущение контроля за состоянием сайта.
Также генерируются правильные мета-тэги чтобы объяснить поисковым системам на каких языках по какому адресу ещё доступна эта страница (в многоязычной конфигурации), генерируются Open Graph мета-тэги.
Компоненты собираются в дистрибутивы через либо графический интерфейс, либо из командной строки, устанавливаются/обновляются из админки в графическом интерфейсе (ядро тоже можно ставить с командной строки).
На самом деле есть не только ядро
На самом деле да, для примера и для удобства создано несколько компонентов, которые либо несут полезную функциональность сами по себе, либо, что ещё более важно, легко интегрируются в другие компоненты. Прямо сейчас готовы:
- Blogs — блог (одно и многопользовательский), организация частично почерпнута из хабрахабра
- Comments — комментарии, интегрируется в другие компоненты
- Disqus — аналогично Comments, но с использованием одноименного сервиса, интегрируется так же как Comments, можно на выбор брать либо один, либо другой
- Cron — простой менеджер crontab (обертка над консольными командами)
- Deferred tasks — позволяет отложить выполнение задачи, ускоряя ответ сервера, выполняя задачу в фоне
- Feedback — простая обратная связь
- Photo gallery — фотогаллерея
- fotorama.js — jQuery плагин слайд-шоу для фото и не только, интегрируется с другими компонентами
- Plupload — HTML5 загрузчик файлов, интегрируется в другие компоненты, работает как с кликом, так и с перетаскиванием файлов на объект (Drag & Drop)
- TinyMCE — визуальный HTML редактор, интегрируется в другие компоненты
- OAuth3 — сервер OAuth3, позволяет, например, подключать к сайту мобильные приложения
- HybridAuth — вход на сайт через множество разнообразных социальных сетей и прочих сервисов
- Content — создание простых элементов контента с возможностью редактировать на месте, интегрируется с другими компонентами, может использоваться сам по себе
- Static pages — возможность создавать простые статические страницы
Разное
Ядро CleverStyle CMS всего 2 МиБ и состоит примерно с 280 файлов (это уже включая все сторонние библиотеки), имеет всё необходимое для разработки подавляющего большинства всевозможных сайтов размером от визиток до масштабируемых на несколько серверов.
Все инструменты готовы к использованию прямо после установки (состоящей из одного шага), и не нуждаются в обязательной настройке, но поддаются перенастройке при надобности.
Архитектура спроектирована с нуля, несколько менялась со временем, учитывая опыт практического использования в продакшене, и устаканилась в таком виде, в котором есть сейчас. В ядре используются как готовые сторонние библиотеки так и специально написанные, некоторые были написаны специально для CleverStyle CMS и потом отделились в самостоятельные проекты.
Код доступен на GitHub под MIT лицензией: https://github.com/nazar-pc/CleverStyle-CMS
Несмотря на то, что система должна рассматриваться скорее как монолит — многие части либо сразу, либо с небольшим усилием можно оторвать и использовать отдельно — например, минификация и объединение CSS/HTMLфайлов, реализация псевдо-файловой системы в кэше (по сути поддержка тэгов) для APC и Memcached, да и ещё много чего, код под MIT лицензией, можно использовать.
Есть wiki с описанием устройства и взаимодействия различных частей системы: https://github.com/nazar-pc/CleverStyle-CMS/wiki
На базе движка работает несколько сайтов, есть мобильные приложения, так что функционал живой и рабочий, используется в боевых условиях.
Как попробовать
Демка с публично доступным сайтом плохо поддерживается — то пароль кто-то изменит, то настроит что-то, да и сломать с полным админским доступом при желании не сложно. Благодаря тому, что последние версии поддерживают сборку и установку в режиме командной строки стало возможным приготовить образ для Docker с автоматически обновляемой и всегда последней git версией системы. Запускается так:
docker run --rm -p 8888:8888 nazarpc/cleverstyle-cms После этого можно открывать localhost:8888 и смотреть (логин admin, пароль 1111), все компоненты изначально отключены, но доступны в админке.--rm удалит контейнер после остановки (остановить можно с помощью Ctrl+C).habr.com
Чистый HTML, самописец, фреймворк или CMS?
Вопрос о том, на чём лучше писать сайт, преимущественно, возникает в двух случаях: когда нет глубинного понимания разницы, и во время неожиданной нагрузки, которая превышает способности системы. Собственно, во втором случае, речь идёт о переписывании сайта. Для начала кратко рассмотрим различные варианты.
Чистый HTML
Несомненным преимуществом использования чистого HTML, а если сказать точнее — HTML + CSS (каскадных таблиц стилей) чрезвычайно высокое быстродействие и невысокая нагрузка на сервер. Но недостатком такого решения является невозможность реализации любой интерактивности или динамического формирования страниц. Такой сайт может быть исключительно статическим. Управление контентом такого сайта является крайне тяжёлым для неквалифицированного администратора / веб-мастера. Своего рода костылём может стать вспомогательное ПО, которое помогает генерировать HTML-код. Однако, такое управление сайтом является крайне негибким и неудобным.
Чистый HTML целесообразно использовать для полностью статических сайтов-визиток, дорвей-сайтов или лендингов (landing page).
Самописец
Самописец, или, проще говоря — собственный движок, предоставляет широкие возможности реализации любого набора функций и оптимизации сайта. Ограничение устанавливает лишь фантазия заказчика, квалификация программиста и стоимость разработки. Почему стоимость? Потому что — это самый длинный и трудоёмкий путь. Программисту необходимо будет реализовывать практически всё: от взаимодействия с базой данных и к внутреннему интерфейсу администратора. Конечно, речь не идёт об использовании заготовок (собственных фреймворков) разработчиком, что нередко бывает в арсенале веб-программистов.
Сопровождение и создание сайтов на самопишущих «движках» не его разработчиком, главным образом является сложным, а документация — отсутствует. Но если у вас есть IT-отдел, — можете попробовать пойти таким путём.
Фреймворк
Фреймворки (framework) — тиражируемый комплекс программных решений, таких как библиотеки, инструменты и тому подобное. Фреймворки снимают с программиста необходимость реализации кода рутинных операций, таких как подключение к базам данных, разбор параметров http-запроса, формирования виджетов и т. д. При этом программист имеет полный контроль за логикой веб-приложения. Популярные фреймворки хорошо документированы и, преимущественно, имеют большие сообщества на форумах, где можно получить советы и ответы на любые вопросы.
Производительность большинства фреймворков для веб-программирования незначительно уступает самопишущим движкам, а разработка проектов, работающих на них, в несколько раз быстрее и проще. Основным недостатком является то, что для программиста остаётся необходимой реализация внутренних механизмов управления контентом. Примером популярного фреймворка является YiiFramework.
CMS
Использование готовых CMS — кратчайший и самый дешёвый путь к получению функционального сайта. Работа веб-программиста сводится к минимуму, а иногда, продвинутый пользователь способен сделать всё собственными силами. Администрирование и наполнение контентом такого сайта не требует специальных навыков. Определённые сложности начинаются тогда, когда возникает необходимость реализовать нестандартный набор функций или совсем нетрадиционный дизайн сайта. Однако, большинство CMS с открытым кодом позволяют специалисту гибко реализовывать любые пожелания заказчика. Фактически CMS, в большинстве, являются продвинутыми фреймворками.
Недостатком подавляющего большинства CMS является более низкое, по сравнению с чистыми фреймворками, быстродействие и более высокие требования к ресурсам, которые обусловлены универсальностью возможностей и обеспечением простоты управления контентом. Но для большинства CMS проблема производительности проявляется при очень больших нагрузках, или при интенсивной работе со значительными объёмами данных. Например, для популярной в России платной системы управления Bitrix необходимы большие объемы данных и выделенный сервер. Примерами же популярных CMS с открытым кодом является Drupal, WordPress и Joomla.
Так что выбрать? В большинстве случаев, CMS удовлетворит потребности почти любого веб-сайта. Гораздо реже реальная необходимость в использовании фреймворков. Целесообразность использования самопишущих "движков" возникает крайне редко. Чистый HTML + CSS целесообразен для реализации простых статических сайтов.
Спасибо, что прочли статью до конца. Надеюсь, она была для вас полезна. Если да, продублируйте её в социальных сетях с помощью виджета слева. Благодарю!
Рафиков Ришат
lezhebokov.com
Фреймворк или content management system (CMS)
Что выбрать для создания своего собственного веб-ресурса? Фреймворк или content management system (CMS)? В первую очередь поговорим о способе создания своего ресурса. Это так называемая CMS, она является очень качественным и чудесным инструментом в опытных руках. Если вы не обладаете обширными знаниями по программированию сайтов, но все-таки несмотря на это все равно хотите создать свой собственный ресурс, то можете пользоваться именно этой системой.
На самом деле любая система сама по себе представляет специальную площадку, при помощи которой создается проект или иначе говоря сайт. Как правило, площадки узкоспециализированны, то есть они подходят для определённых типов ресурсов, приведем конкретный пример. Например, тот же wordpress больше всего подходит для создания личных авторских блогов, но ещё и для тематических сайтов. Тогда как движок под названием Joomla (Джумла) больше всего подходит для создания крупномасштабных порталов, интернет-магазинов, клубов и прочее. Но с другой стороны простой сайт является универсальным и его можно создать при помощи любого движка. Как вариант, можно использовать уже готовые решения от хостинг компаний, которые предлагают одновременно с хостингом предустановленную и настроенную CMS Wordpress https://hosting.reg.ru/ - вам остается только добавить ваш контент и сайт готов к старту.
На самом деле создание своего сайта при помощи content management system является довольно таки функциональным способом создания своего ресурса так как любой платный и бесплатный конструктор позавидует возможности систем управления контентом. К тому же вам предлагается коллосальное количество самых различных плагинов и шаблонов, при помощи которых вы можете значительно улучшить свой ресурс и облегчить способы управления им. На самом деле о данном способе создания своего ресурса можно разговаривать бесконечно, перейдём непосредственно к сути.
Сначала вы должны зарегистрировать доменное имя, для этого вы можете поискать среди различных регистраторов доменных имен. Далее вы должны подобрать для себя наиболее подходящий хостинг. Желательно подбирать такое хостинг, который имеет довольно таки хорошее дисковое пространство, имеет онлайн службу поддержку. Обращаться к администрации при помощи тикетов, это все равно что себя не уважать, и вы можете ждать ответ неделями. Так вот, затем вы просто ставите систему wordpress или джумла, данный процесс является легким и там все понятно. Ознакомьтесь с функционалом и панелью управления, затем становитесь владельцем своего собственного ресурса.
Теперь о фреймворках. На самом деле как правило фреймворки являются бесплатными, но при этом их возможности колоссальны, ведь на их базе вы можете создать абсолютно любые ресурсы. У вас будут уникальные возможности. Но к огромному сожалению для успеха в работе с фреймворками вам необходимо знать программу, которая поможет создать сайт и необходимо знать языки программирования. Кроме того, вам надо будет потратить немного личного времени на освоение структуры и изучение функционала и дополнений фреймворка. Именно поэтому новичок вряд ли освоит фреймворки, именно поэтому в данном противостояние побеждает "CMS".
joomix.org
Какой PHP-фреймворк лучше использовать для написания модульной CMS? — Toster.ru
Добрый день.Передо мной встала задача разработки некоторого сайта, "под крылом" которого должен быть доступен разнородный функционал, который, к тому же, будет постоянно расширяться в смысле добавления принципиально новых разделов (возможно, разными людьми). Т.е. расширение функционала должно быть с самого начала предусмотрено, чтобы последующие интеграции новых частей приложения были максимально автоматическими.
Для краткости этот разнородный функционал я буду называть модулями (хотя не уверен, подходящее ли это слово).
Хочу подчеркнуть, что под модулем подразумевается не просто некий полезный функционал, не какая-то новая библиотека, а набор программных средств и данных, позволяющих отобразить какую-то информацию на сайте "от и до", т.е. каждый модуль должен иметь контроллер, свойственные ему модели, классы для работы с БД, представления и, что немаловажно, программный код клиентской части приложения (при этом всё это должно соответствовать интерфейсам, общим для всего приложения).
Решение этой задачи я представляю себе следующим образом (тезисно):
- Приложение должно состоять из CMS и расширений-модулей. (На самом деле я не уверен, действительно ли это будет CMS в полном смысле слова, но я буду использовать именно этот термин.)
- В CMS должны быть заложены возможности экспорта-импорта модулей.
- Модули должны быть независимы друг от друга, но зависимы от фреймворка и связанной с ним кодовой базы (т.е. не должны изобретать свои велосипеды, а использовать общую кодовую базу приложения).
- Модули и CMS должны иметь общую систему авторизации, но отдельные системы пользовательских ролей.
Кроме того, для управления этой системой:
- CMS должна иметь свою администраторскую панель, через которую можно было бы управлять вещами, относящимися ко всей CMS.
- Модуль должен иметь свою администраторскую панель, интегрированную в админку CMS.
Также, вероятнее всего, потребуется обеспечить к этим модулям доступ через различные субдомены в виде "foo-module.site.com/bar-action-of-foo-module"
Нечто подобное (в ОЧЕНЬ первом приближении) я видел в CMS Joomla!, однако в ней всё-таки больше CMS-ности, а мне нужно в разы меньше (я не стремлюсь создать "ещё одну CMS" для пользователей, а хочу сделать свою работу немного проще за счёт разнесения общего и частного функционалов по разным корзинам). В Joomla! ближайшим аналогом моего "модуля" является "компонент", в котором (как и во всей Joomla!) реализован паттерн HMVC, о деталях "хорошей" реализации которого я не нашел ничего кроме красивых блок-схем, нарисованных пользователями той же Joomla!.
В общем, выше изложен большой набор хотелок, а вот вопросы:
- Какой существующий PHP-фреймворк наиболее подходит для написания этой CMS? Я сейчас смотрю в сторону Symfony2 и Yii2: заложена ли в них возможность использовать паттерн HMVC, или может в этом не будет необходимости?
- Если вдруг что-то из сказанного мною выше приводит вас в недоумение - я буду рад услышать критику касаемо постановки задачи или предлагаемых мною решений.
- Если вы знаете какие-то хорошие подходы для решения указанных выше задач - я буду очень рад услышать их.
toster.ru
Разработка сайта на CMS, на Framework или с нуля, что выбрать
Перед любым человеком, который заказывает сайт, возникает выбор варианта создания сайта. Одни исполнители доказывают, что CMS Wordpress или какая-либо другая CMS это идеальный вариант, другие говорят, что CMS это не серьезно и нужно делать сайт на Framework, например на Yii, Laravel, а третьи вообще говорят, что сайт нужно делать с нуля, без использования CMS и фреймворков.
Для начала разберемся, что такое CMS и что такое Framework.
CMS (Система управления содержимым) - полностью готовый програмный комплекс для управления сайтом и его содержимым. Для создания сайта на CMS, необходимо скачать ее файлы, пройти быструю настройку и все, у вас есть полностью функционирующий сайт, например блог, интернет магазин, лендинг. CMS были придуманы, чтобы каждый человек, который даже вообще не знает ни программирования, ни верстки смог быстро и бесплатно сделать себе сайт. Популярные CMS: Wordpress, Joomla, Drupal, OpenCart, MODx.
Framework (Фреймворк) - маловесный программный каркас, который определяет структуру веб-приложения. Для создания сайта на фреймворке уже необходимы очень мощные знания в программировании и верстке, потому что из базового программного каркаса нужно делать сам сайт, блог, интернет-магазин, корпоративный сайт или какой-либо другой сайт. Также при создании сайта на фреймворке необходимо кроме клиентской части полностью делать административную часть. Готового функционала для сайтов фреймворки не содержат. Популярные фреймворки: Yii, Laravel, Zend, Symfony, CodeIgniter.
Плюсы CMS:
- скорость разработки: Сделать сайт на CMS дело нескольких минут;
- уровень знаний: Сделать сайт на CMS может любой человек, имеющий минимальный набор знаний владения компьютером;
- цена: Если делать сайт самому, сайт выйдет сделать за бесплатно.
Минусы CMS:
- медленная работа сайта и загрузка страниц: Быстродействие сайта на CMS оставляет желать лучшего, страницы сайта загружаются очень медленно и сам сайт работает медленно;
- ограниченность функционала: Каждая CMS заточена под определенные задачи и имеет ограниченный функционал, вряд ли вы найдете шаблон, который удовлетворит все ваши желания. А добавления функционала через сторонние модули очень небезопасно;
- грязный код: почти все CMS имеют очень плохой код, и дописывая что-то необходимо следовать этому же стилю, после чего проект разростается в огромное недоразумение;
- безопасность: Сайт на CMS может взломать любой школьник, особенно если там установлены сторонние модули, можете убедиться сами, написав в гугл "взломать сайт вордпрес" или вместо вордпрес, интересующую вас CMS;
- расширяемость: Если захотите дабавить на сайт какую-либо возможность, даже не большая правка может повлечь за собой переписывание половины ядра, да и вряд ли вы найдете "специалиста", который сможет это сделать;
- продвижение: Сайты на CMS тяжело продвигать, поисковики любят индивидуальность, а не, когда у миллиона пользователей одинаковые сайты.
Плюсы Framework:
- скорость работы сайта и загрузки страниц: Сайт будет работать очень быстро, странички будут загружаться мгновенно. А это один из-самых важных факторов для привлечения клиентов;
- безопасность: Сайт на фреймворке на много безопаснее, как правило они защищены даже от crfs атак и sql иньекций. Вам не придется искать того, кто б почистил сайт от вирусов;
- кастомизация: Вы не будете ограничены в функциональных возможностях какой-либо CMS, на фреймворке можно сделать любую вашу задумку. Заказчик может попросить сделать что угодно и это будет реально;
- админка: К сайтам, написаным с помощью фреймворка, делают уникальную административную панель, которая сделана именно под требования заказчика, удобная и не имеет ничего лишнего, разобраться в ней не составит труда;
- расширяемость: Любой проект, можно будет расширить до огромных масштабов с минимальными потерями производительности, добавляя любой функционал;
- продвижение: Сайты на фреймворках на много легче продвигать, т.к. они уникальны;
- чистый код: Фреймворки имеют чистый и красивый код и навязывают стиль качественного оформления дальнейшего кода, любой нормальный прогаммист, разберестся, что происходит в том или ином методе.
Минусы Framework:
- сложность: Для разработки сайтов на фреймворках нужен большой опыт;
- цена: За бесплатно сайт на фреймворке уже не получишь, придется нанимать программистов.
Еще один вариант создания сайта, это разработка сайта с нуля. Этот вариант имеет еще больше плюсов, чем разработка сайта на фреймворке, но для 99% проектов это нецелесообразно, т.к. это очень долго и очень дорого. Такой вариант идеально подойдет для очень крупных соц. сетей или огромнейших интернет-магазинов, таких как алиэкспресс.
Итак, что же все-таки стоит выбрать для своего проекта???
Можно сделать такой вывод: если вам нужен сайт, который будет быстро работать, иметь большую производительность, быть расширяемым и удобным, то стоит выбрать создание сайта на framework, а если у вас нету навыков в программировании и вы хотите сделать сайт для себя и не ждете, что он принесет вам денег и клиентов, то можно выбрать CMS.
Главное не попадитесь на нечестных разработчиков, которые вам за огромные деньги предложат сделать сайт на CMS и будут уверять вас, что это отличный вариант. Заказть создание сайта на CMS это тоже самое, то заказать видеосьемку фильма на камеру мобильного телефона.
Статью подготовил Бируля Игорь для блога компании reQonce. Первоначальный источник на сайте блога нашей компании https://require-once.com/article/razrabotka-saita-cms-framework-s-nulya-chto-vibrat
it-rating.in.ua
Framework или CMS – что выбрать?
Framework или CMS – что выбрать?
Фактически каждый сайт немного похож на дом, магазин, офис – одним словом, место, где обитают. Но чтобы начать в нем полноценно и эффективно обитать, такое место нужно создать и обустроить. Опытные строители знают разницу в материалах. Одни предпочитают купить готовый сруб (в нашем случае CMS), а другие – накупить бревен, досок, кирпичей и всякого-всякого, на что хватит денег и фантазии (Framework).CMS (Content Management System) - система управления контентом. Представляет собой программное обеспечение, позволяющее создавать содержимое веб-сайта, а также управлять им и редактировать его. CMS похожа на набор формочек для песка. Вы можете лепить что угодно, но в рамках того выбора формочек, который имеете. Если чего-то нет, то нет. Придется отказаться или докупать другие формочки, а то и целый комплект. К наиболее популярным CMS относятся: Joomla, Drupal, MODx, 1C Битрикс, WordPress.
Framework («каркас» с английского) – это программная платформа, в которой Вы найдете набор библиотек. Возвращаясь к нашему сравнению, это то же самое, что лепить руками. Без формочек. Руками лепить, конечно, медленнее и нужно гораздо больше умений, а вот с формочками проще и быстрее. За CMS в данном случае говорят скорость, простота и доступность. Не то чтобы работать с ней мог каждый, но опыта хватит и минимального. Зато формочка есть формочка, и придется смириться с ее шаблонностью и ограниченностью.
Framework предлагает в этом плане гораздо больше возможностей. С ним Вы можете создавать уникальные продукты, воплощать мечты и пожелания и удовлетворять свои творческие потребности. Как известно, ручная работа всегда дороже. Поэтому продукт, созданный на базе Framework, будет дороже продукта, созданного на базе CMS. И чтобы не оказаться в той ситуации, когда скупой платит дважды, то «строя» свой сайт на CMS, нужно понимать, что придется использовать готовый функционал, который не всегда подходит для реализации специфических идей. В противном случае лучше сразу обратиться к Framework. Помимо уникальности Framework отличается высоким КПД. Кроме того собирая сайт, с Framework легче позаботиться о безопасности, устранив возможные дыры и недоработки. Ведь здесь делаешь продукт сам, а не пользуешься уже готовым, иногда с сомнительным качеством. Например, ряд бесплатных CMS имеет открытый код, который доступен потенциальным взломщикам. В коде, который не доступен, дыру найти гораздо сложнее.
Одни из самых популярных Framework: Symfony, Yii, Zend Framework, Laravel.
На самом деле эффективно работает то, что используется по назначению. CMS подойдет для сайта-визитки, для интернет-магазинов, для проектов малого и среднего бизнеса – там где, не требуется изобретать велосипед и поражать посетителя уникальными решениями. В этом случае CMS позволяет сэкономить и время, и деньги. Framework хорош прежде всего для сайтов с высокой нагрузкой, для проектов, находящихся в постоянном развитии и стремящихся соответствовать изменчивым требованиям рынка, и, конечно, для уникальных решений. Framework или CMS зависит в первую очередь от тех задач, которые требуют решения, и от целей, которые должны быть достигнуты.
webdoka.ru
CMS, фреймворки и SaaS-решения — «Веб Креатор»
Наиболее популярные виды платформ для разработки сайта
Наиболее распространённый вариант — это разработка на CMS-платформах.
Система управления сайтом (Content Management System) — это программный продукт, который служит для разработки некоторых стандартных разновидностей сайтов. Почти все CMS модульные, а модули многих из них собраны в комплекты (или редакции), предназначенные для тех или иных видов сайтов. Есть коробочные CMS для простых сайтов, для каталогов, для интернет-магазинов, для блогов, для новостных порталов и для других видов сайтов.
Большая часть небольших и средних сайтов строится именно на CMS-платформах, так как это наиболее целесообразный с экономической точки зрения подход: требования к таким сайтам с технической точки зрения невысокие, а встроенные в CMS модули обычно удовлетворяют выдвигаемым к ним бизнес-требованиям.
Мы, например, разрабатываем коммерческие сайты на UMI.CMS и 1C-Bitrix. Это отечественные коммерческие CMS-платформы, которые уже много лет используются для создания сайтов и хорошо зарекомендовали себя.
Самая гибкая и наиболее мощная платформа — фреймворк.
Фреймворк — это программный продукт, который служит основой для сайта, но обычно не содержит в себе готовых программных модулей для реализации конкретных бизнес-процессов. Выражаясь техническим языком, фреймворк — это более низкоуровневое решение, нежели CMS. Разработчики, при создании сайта на фреймворке, создают не только публичную часть сайта, но и проектируют базу данных, разрабатывают алгоритмы для модулей системы, а также создают административный интерфейс для управления проектом. Необходимость серьёзных затрат на программирование делает разработку более дорогой, но и результат получается более индивидуальным.
Этот вид платформ используют почти все крупные веб-проекты (на CMS построена лишь очень малая часть действительно серьёзных проектов), а также подавляющее большинство веб-приложений и веб-сервисов (коробочных решений для уникальных бизнес-процессов просто не существует, а использование не очень подходящих CMS в качестве основы для кастомизации очень усложняет разработку).
Мы, например, разрабатываем серьёзные веб-проекты на фреймворке Ruby on Rails. Данный фреймворк позволяет создавать действительно сложные сайты, бизнес-приложения и веб-сервисы. Скорость работы и устойчивость к нагрузкам у таких решений на порядок выше (в сравнении с CMS), а сопровождаемость и стоимость владения при этом не сильно отличаются.
CMS-платформы
CMS на рынке существует много и они очень разные:
- есть бесплатные, есть платные;
- бывают коробочные и самописные;
- большая часть CMS универсальны, то есть годятся для практически любых коммерческих сайтов;
- некоторые из CMS очень специализированные — они подходят, например, только для блогов или только для социальных СМИ.
Подробная статья о CMS →
Фреймворки
Фреймворки — это платформа для сложных сайтов или веб-приложений, которая оптимально подходит для создания сайтов и веб-приложений по индивидуальному проекту, которые должны работать быстро и выдерживать серьёзные нагрузки. Надо быть готовым к тому, что при выборе фреймворка в качестве платформы для разработки, придётся достаточно много времени и ресурсов потратить на разработку бизнес-логики, это плата за гибкость.
Подробная статья о фреймворках →
Какая платформа лучше: CMS или фреймворк?
Ответ на это вопрос очень прост — смотря что именно надо разработать: если проект простой и требования к нему самые обычные, то выбирается CMS, а если проект сложный, то проще его на фреймворке делать.
Подробнее про выбор между CMS и фреймворком →
SaaS-платформы
Также сейчас «набирает обороты» создание сайтов на SaaS-платформах. SaaS-платформа для создания сайтов — это возможность запустить достаточно простой веб-проект очень быстро и крайне дёшево (причём еще и на условиях аренды). Решение подходит для простых сайтов, временных проектов и для проверки бизнес-идей. SaaS-платформы, как и CMS, бывают специфическими (только для интернет-магазинов, например) и универсальными (для всех типовых видов сайтов).
Подробная статья о SaaS-платформах →
web-creator.ru