CMS или Фреймворк? Что выбрать? Cms фреймворк
PHP-фреймворк или CMS? Как понять, что выбрать для создания сайта?
Времена уникальных сайтов, написанных веб мастерами самостоятельно от начала и до конца, уходят в прошлое. Современные требования к сайтам таковы, что код для необходимого функционала во многих случаях пришлось бы писать годами.
На помощь программистам и верстальщикам приходят такие популярные и эффективные инструменты: PHP Фреймворки и CMS (от англ. Content Management System - система управления контентом). Вариант выбора зависит от знаний вебмастера и целей, поставленных перед проектом.
Как же разобраться и понять, что выбрать Фреймворк или CMS?
Что из себя представляют PHP-Фреймворки
Работа с Фреймворком требует определенных знаний. Но это не так страшно, как может показаться на первый взгляд.
Существует множество информативных ресурсов, дающих стартовые знания, а когда вы поймете принцип их работы от вас потребуется только желание к творчеству и экспериментированию. Фреймворк можно назвать основой для будущего приложения, он является набором готового кода, позволяющего решать задачи, поставленные перед создателями сайтов.
Самые популярные PHP Фреймворки: Zend Framework;Yii;Phalcon;Codeigniter - изучите возможности этого фреймворка у профессионалов:
Laravel;Symfony2.
Достоинства
1. Код созданный на Фреймворках «легкий», он отличается высокой производительностью. Скорость работы выше только у приложений, написанных на чистом PHP, с индивидуальной разработкой кодов.
2. Хорошая защищенность кода. Фреймворки пишут опытные программисты, код проходит тестирование сообществом разработчиков. Недостатки и уязвимости своевременно устраняются.Возможность применения нестандартных решений значительно снижает вероятность взлома.
3. Универсальность. Используя готовые классы и библиотеки Фреймворков можно решить любую поставленную задачу.
Трудности, с которыми вы можете столкнуться
1. Новичку, первое время будет довольно тяжело разобраться в коде. Но нужно заметить, что язык PHP довольно прост в изучении и интуитивно понятен. Освоив азы, вы довольно быстро разберетесь и со сложными заданиями.2. Для разработки сайта требуется определенное время. Хотя в библиотеках Фреймворков есть все необходимые коды, собрать из них функционирующий сайт не так уж и просто. Зато полученный результат того стоит. У вас будет уникальный, не похожий на другие, сайт.
3. В готовом сайте будет отсутствовать административный модуль. Его нужно собирать самостоятельно. Это не тяжело, если у вас есть хотя бы небольшие знания по PHP. К счастью, есть множество почти готовых решений, требующих незначительной доводки.
4. Считается, что сайты, созданные на основе Фреймворков, обходятся дорого в обслуживании. Причина кроется в уникальности. Даже опытный программист через полгода может забыть, какие коды он использовал при создании сайта. Чтобы упростить работу необходимо оставлять комментарии для каждого используемого элемента.
Системы управления контентом (CMS)
Если говорить простым и понятным языком CMS – это сердце сайта. В системе присутствует движок, отвечающий за правильную подачу данных и админ панель, позволяющая изменять конфигурацию страниц и разделов.
Основной задачей таких систем является сбор и объединение данных в единое целое. Источники при этом могут находиться как на самом ресурсе, так и вне его. Используя CMS, можно быстро создавать сайты, наполнять их содержимым.
Современные CMS - комплексное решение, имеющее огромный набор функциональных возможностей.Самые популярные CMS:Joomla! - подробнее читайте JOOMLA: достоинства и недостатки бесплатного движкаDrupal;WordPress.
Достоинства
1. Самое главное достоинство – это минимальное время, требующееся для разработки сайтов.
2. Множество готовых дополнений в виде легко устанавливаемых расширений.
3. Изучение, настройка - несложные, интуитивно понятные.
4. Дают возможность создать свой сайт, даже если вы совершенно не владеете языками программирования.
5. Схожесть устройства админ панели и функционала различных CMS упрощают работу вебмастеров.
На что нужно обратить внимание
1. У многих CMS есть некоторая ограниченность в возможностях. Встречаются системы с четко очерченными задачами. Что касается монстров как WordPress или Joomla! – здесь все решается путем установки расширений, в результате получаются сайты с большими возможностями.
2. Более низкая производительность, чем у сайтов, созданных на Фреймворках, требует больше ресурсов (не имеет значения, при мощном серверном оборудовании).
3. В некоторых случаях имеют избыточные функции. Это издержки универсальных решений, с которыми остается только смириться. К тому же никогда неизвестно что может понадобиться через месяц.
Выводы
Вариант выбора решения зависит от предполагаемого рода деятельности сайта, готовности к вложению средств в разработку или объема своих знаний.
Если вам не важна уникальность, а сайт требуется создать в кратчайшие сроки - нужна CMS.
Когда важен момент неповторимости и позволяют возможности, выбирайте вариант, при котором сайт создается на Фреймворке. В любом случае окончательное решение зависит от вас.
fructcode.com
CMS или Фреймворк? Что выбрать? — Оффтоп на vc.ru
Что выбрать для разработки фреймворк или 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, но с опытом приходит осознание того, что умные дядьки уже очень много полезного за тебя понаписали и можно этим пользоваться. Я, кстати, об этом писал уже в формате вредных советов https://t.me/it_programmist/55
----
Популярные 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) Конечно же это далеко не исчерпывающие списки. Каждый найдёт что-то по вкусу.
#программирование #разработка #web #веб
Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.
vc.ru
Что выбрать: CMS или Framework?
Что выбрать для нового проекта, CMS на подобие Drupal, WordPress, Joomla или Framework, на подобие Laravel, Symfony, Yii и т.д. В чём отличие CMS от Framework? CMS — это готовый программный шаблон для создания сайта. А именно, он уже обладает богатым набором функционала из коробки: админка, система регистрации, авторизации и аутентификации; система ролей для пользователей и настройка прав; готовый шаблон с блоками и панелями; множество предустановленных модулей, которые позволяют получить богатый функционал: блоги, форумы, голосовалки, соц. сети, галереи, доски объявлений и т.д.
При этом можно создавать прямо из админки сайта новые страницы, поля для форм, целые разделы и типы данных, настраивать ссылки, алиасы и много вообще ещё чего. У каждой CMS есть свое огромное сообщество, которое каждый день выпускает новые решения, новые модули, шаблоны и другие интересные ништяки.Казалось бы, вот он рай неземной. Но не всё так радостно, как может показаться. И чем более квалифицированный программист, чем больше у него опыта и знаний, тем меньше ему хочется работать с CMS.
Итак, обратная сторона красивой медали. А вот она уже очень некрасивая! Чтобы всё это буйство решений работало в одной связке, нужен очень строгий и типизированный механизм. А если конкретнее, то ядро системы должно иметь механизмы, позволяющие подключать разнообразные модули, которые будут сразу же работать после включения. А это означает, что структура модуля должна быть строго типизированная, конкретно под свой CMS.
И будет работать только под её управлением и только той версии, под которую написан этот модуль. Система хранения данных в базе уже определена, и поэтому необходимо следовать стандарту. Система шаблонов также строго типизирована. Для того, чтобы все красиво состыковывалось и работало, созданы системы таких жутких костылей, что иногда на это без слез смотреть нельзя.
Когда вы захотите получить для своего проекта функционал, которого не существует из коробки, то вам придется создавать свой модуль или модули. При этом вы неизбежно столкнётесь с тем, помимо того, что необходимо строго следовать стандарту конкретной CMS, что вам всё время придется придумывать костыли, чтобы обойти множество ненужных вещей, которые будет вам навязывать ядро.
Для примера, вы хотите убрать из какой-то формы регистрации часть описания, или изменить внешний вид поля, или изменить обработчик, на который нужно повесить свой дополнительный функционал. И вот тут вы начнете скакать на граблях. Любая кастомизация, в том числе и внешнего вида, принесёт вам очень много головной боли. Вы столкнётесь с тем, что в шаблон для рендера передается такое количество мусора, что не совсем понятно, почему он называется шаблоном. Перехват данных до вывода в шаблон, перехват данных после вывода в шаблон, перехват данных в момент создания формы и ещё сотни всяких приколов.
Вместо создания собственного функционала, вы будете большую половину времени тратить на борьбу с CMS, читать сутками мануалы, искать в интернете решение проблемы вылазящих ото всюду багов. Или как обойти то или иное ограничение. Вольётесь в сообщество и превратитесь в адепта системы. Другими словами, вы будете создават не свой код для себя и заказчика, а будете придумывать 1000 + 1 способ, как обойти ограничения или избыточность CMS.
Что же такое Framework?
А это уже полуфабрикат, который представляет из себя только набор минимально необходимого функционала, который реализовывает ряд популярных паттернов. Например, MVC, который уже по умолчанию является стандартом при создании сайтов. Как правило, из коробки нет ничего. Но зато у вас в руках появляется мощный инструмент. Вы можете создать такую архитектуру проекта, которую хотите. Создать структуру базы данных именно так, как необходимо.
В шаблон вы выводите только то, что вам нужно, а сам шаблон — это действительно шаблон, а не каша из php и html кода. Все настройки храните в файлах, а не в базе. Ваш проект легко переносить из одного сервера на другой. В наличии всегда миграции, которые позволят развернуть проект с нуля за пару минут в любом месте. Все маршруты к страницам хранятся в файле роутов, а не в базе.
Другими словами, вы полностью сосредотачиваетесь на процессе разработки и осуществления задумок. Сам framework не будет вас заставлять делать только так или этак. Но придется следовать определенным правилам, которые логичны, адекватны и помогают улучшить и код, и структуру приложения.
Помимо этого, для фреймворков существуют свои готовые решения для конкретных задач, которые можно установить через composer. Очень часто можно адаптировать решения от одного фреймворка к другому. К примеру, бандлы от Симфони присутствуют практически в каждом php фреймворке. Но установить пакет/модуль/бандл и т.д. и включить его кликом мышки не получится. Придется сделать подключение провайдеров в коде, что-то настроить. В своих контроллерах подключать фасады или классы. Другими словами, разрабатывать свой код, при этом отдавая часть заботы о функционале установленным решениям.
Какой вывод из всего этого можно сделать.
Если ваш проект — это простой сайт, который не требует глубокой кастомизации, при этом нужно много разных плюшек, за которые заказчик не особо хочет платить, и нужно создать все уже на вчера, то CMS тут вне всякой конкуренции. Здесь даже без вопросов. Но если вы делаете проект, который будет постоянно дорабатываться, для которого нужно писать свои решения, нужен гибкий дизайн и всякие плюшки, да еще и нагрузка на сайт ожидается существенная, то тут однозначно выигрывает фреймворк. Так как вы сосредоточитесь именно на разработке того, что нужно именно вам, а не на борьбе с тем, что вам не нужно.
Читайте также
- Что делать во время shit happens
Знаете, как это бывает? Интернет вдруг пропадает... Чертыхаешься... ищешь телефон провайдера.. Звонишь... а там трубку ни кто не берёт... Или…
-
Как регламентировать перекуры в течение рабочего дня? Можно ли разрешать опаздывать к началу рабочего дня? Можно ли чатится во время…
evilinside.ru
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, возьмите фреймворк.
iantonov.me
Выбор между CMS и фреймворком — «Веб Креатор»
По сути, любой сайт можно разрабатывать при помощи одного из трёх подходов:
Если провести аналогию со строительством дома, то подходы выглядят так:
- Вы покупаете некий готовый дом, а потом его достраиваете / делает отделку.
- Вы покупаете кирпичи и доски, а затем приступаете к строительству по своему собственному проекту.
- Вы ищете и разрабатываете месторождение глины, делаете из неё кирпичи, параллельно с этим вырубаете лес для изготовления досок… Думаю, что можно не продолжать.
Разработку «с нуля» стоит сразу отбросить, так как этот подход может быть правильным только в том случае, если создание проекта – это основная задача компании, а ресурсов под эту задачу выделено очень много. Хорошие проекты «с нуля» пишутся очень долго, хотя этот подход позволяет создавать очень серьёзные решения.
Поэтому рассмотрим только создание сайта на базе платформ:
Разработка на CMS — наиболее правильный подход, если проект достаточно типовой. То есть в CMS уже есть все нужные вам модули, а те процессы, которые встроены в CMS, почти полностью соответствуют вашим ожиданиям.
Разработка на фреймворке – наиболее правильный подход, если ваше видение проекта не особо укладывается в возможности и процессы присутствующих на рынке CMS. То есть тогда, когда в случае использования CMS её придётся существенно дорабатывать.
Если возвращаться к приведенной выше аналогии, то «производство стройматериалов» – удел немногих, «покупка готового дома» оптимально подойдёт тем, кому эти готовые дома изначально нравятся, а «строительство из готовых материалов» лучше всего для тех, кто хочет что-то особенное. То есть нерационально как покупать готовый дом и разбирать его на стройматериалы, так и собирать из стройматериалов то, что на рынке уже есть в готовом виде.
По сути, выбор стоит делать на основании экономической составляющей разработки. Ниже приведены некоторые критерии, которые позволят принять обоснованное решение по этому вопросу.
- Функционал, который встроен в CMS, дороже и дольше реализовывать на фреймворке, а разработка сложного функционала на CMS или переписывание базовых процессов CMS стоит дороже и занимает больше времени, чем та же работа выполненная сразу на фреймворке.
- Добиться от сложного проекта на CMS высокой скорости работы стоит дороже, чем сделать это на фреймворке. Аналогично обстоят дела и с масштабированием. То есть при высоких требованиях к устойчивости к нагрузкам, производительности или к отказоустойчивости выбирайте решения на фреймворках (или закладывайте стоимость работ по оптимизации CMS в бюджет проекта).
- Запуск первой пилотной (неполной) версии проекта на CMS всегда быстрее, чем запуск аналогичной версии на фреймворке. Если проект сложный, а сроки запуска «горят», то лучше либо выпускать «пилот» на CMS, а затем его затратно дорабатывать или параллельно с этим разрабатывать решение на фреймворке, либо расставлять приоритеты между сроками разработки и сложностью проекта (либо отказываться от сложного функционала, либо увеличивать сроки).
web-creator.ru
CMS или Framework - что лучше для старта нового проекта? / Создание сайтов / Блог / IdeaWeb.site
Создание сайтов 04.09.2017 22:23
Данный вопрос интересует всех, кто хочет заказать или создать собственный сайт. Существует множество языков программирования, при помощи которых можно создать сайт, и еще больше - фреймворков и CMS, на них написанных. Но как выбрать то, что подходит именно вам?
CMS (Content Management System) - система управления контентом. Так называют набор компонентов, которая устанавливается на хостинг и выполняет две простые функции: показывает посетителям сайта контент, который администратор (контент-менеджер) разместил на этом сайте, и позволяет администратору без специальных навыков программирования управлять содержимым сайта.
Какие преимущества подразумевает работа с CMS?
- Много различного функционала, доступного сразу после установки системы.
- Большое количество модулей, позволяющих расширить возможности системы.
Исходя из этих двух достоинств, можно сделать вывод, что CMS отлично подходит для создания типовых, "шаблонных" сайтов. Но теперь стоит поговорить о недостатках, итак:
- Отсутствие возможности внедрения уникальных функций.
- Слишком большая загруженность стандартными возможностями, большая часть которых зачастую не нужна.
- Работа в основном в режиме "конструктора" вместо написания кода.
- Более сложная SEO-оптимизация.
Кроме того, разработка на базе CMS обладает серьезным недостатком: разработчик не может контролировать весь код и слабые места в нем, в результате чего ресурсы, созданные на CMS, зачастую работают медленнее. Таким образом, на базе CMS невозможно запустить высоконагруженный, или уникальный ресурс. Также стоит отметить, что такие сайты в большинстве случаев хуже ранжируются поисковыми системами.
Framework - это платформа, облегчающая разработку и объединение разных компонентов большого программного проекта.
Процесс разработки на базе фреймворков кардинально отличается от создания сайта на CMS: программист работает непосредственно с кодом, вместо перетаскивания разных блоков в панели управления CMS.
Достоинства и недостатки фреймворков
Фреймворк является более сложным инструментом и обладает обширным рядом преимуществ:
- Фреймворк - это набор кода и различных пакетов, на базе которых можно создать абсолютно любой, даже самый нестандартный сайт.
- Отсутствие базового функционала позволяет подключить только те классы и пакеты, которые необходимы, в результате чего сайт будет работать максимально быстро.
- Масса различных пакетов с открытым исходным кодом позволяет реализовать практически любой функционал.
- В сообществах популярных фреймворков значительно больше профессионалов, чем в сообществах популярных CMS, что упрощает поддержку ресурса.
- Фреймворки обычно с открытым исходным кодом, над которым работает целое сообщество специалистов, благодаря чему код фреймворков намного более "чистый" по сравнению с CMS.
Данные преимущества фреймворков позволяют программистам разрабатывать более сложные проекты, выдерживающие более высокие нагрузки. К недостаткам фреймворков можно отнести следующее:
- Часть функционала придется разрабатывать "с нуля".
- Работа с фреймворком требует от разработчика обширных знаний и времени.
ideaweb.site
фреймворк или CMS – Другое – Blog – dmitxe.ru
Что выбрать: фреймворк или CMS
среда, 23 ноября 2011 г., 13:15:19, написал admin
Свое знакомство с сайтостроением я начал с написания простейшего кода на HTML. Сайт получился, естественно, статическим. Следующий проект делал уже на PHP. Времени на написание ушло много, в результате у меня начала создаваться собственная CMS. К сожалению, данный факт осмыслил не сразу. А как только понял, что приду к CMS, решил не изобретать велосипед, освоил Joomla и WordPress.
Разработка стандартных сайтов (блогов, форумов и т.д.) пошла на ура. Но вся проблема оказалась в том, что многим заказчикам нужна некая особая, нестандартная функциональность. Реализовать которую в рамках данной CMS оказывается совсем непросто. Приходиться писать новые расширения или модифицировать существующий код. Времени такая работа занимает много, к тому же из-за взаимодействия с ядром CMS код не оптимальный. В общем, встал вопрос – что же проще – писать свою CMS или мучиться с существующими.
И тут я вспомнил о фреймворках. Фреймворк – это каркас для веб-приложения, а CMS – готовая система управления контентом. Наверное, можно фреймворк можно сравнить с кирпичами, из которых можно построить самые причудливые строения, а CMS – это стандартный дом.
После обзора самых популярных фреймворков я остановил свой выбор на Yii. Понравился достаточно строгий подход, относительная простота изучения (конечно, CodeIgniter осваивается легче, но возможности Yii богаче).
Теперь написать собственную, уникальную CMS стало гораздо проще. Конечно, стандартные проекты быстрее реализовать на готовой CMS, но многие проекты имею тенденцию превращаться из стандартных в нестандартные.
Этот блог я написал на Yii. А вот другой мой блог – netopus.ru написан CMS WordPress. Использовалась одна из бесплатных тем для WordPress.
UPD В сентябре 2013 года блог перешел на Symfony2 (движок SmartCore)
Тэги: Фреймворк CMS Выбор Категория: Другое
Комментарии к статье
dmitxe.ru