Что такое движок сайта

project author

Если Вам понравился данный материал, поделитесь им с вашими друзьями в соц сетях


Движок сайта (жаргонизм от англ. engine — мотор, двигатель) — выделенная часть программного кода для реализации конкретной прикладной задачи — программа, часть программы, комплекс программ или библиотека, в зависимости от задачи и реализации. Как правило, прикладная часть выделяется из программы для использования в нескольких проектах и/или раздельной разработки/тестирования.

Использование готового движка при разработке программы, сайта или другого продукта сокращает время разработки, позволяет уделить больше времени разработке других подсистем, например, пользовательскому интерфейсу (или информационной наполненности сайта).

 

В самом начале зарождения Интернета, само собой, появились первые сайты. В большинстве случаев, эти сайты, представляли собой небольшое количество статических HTML — страниц, связанных между собой гиперссылками.

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

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

Стало очевидно, что без инструмента, который упрощал бы работу с сайтом, не обойтись. Таким инструментов стали системы управления содержимым сайта (CMS).

 

Что такое CMS? (Content Management System)

CMS (является аббревиатурой от англ. Content Management System - Система Управления Содержимым "контентом") — информационная система или компьютерная программа, используемая для обеспечения и организации совместного процесса создания, редактирования и управления контентом.

Если говорить простыми словами CMS — это программа, которая помогает владельцам сайта управлять его содержимым, не требуя от них каких-либо специальных знаний и навыков. Это значит, что для управления сайтом, например, опубликовать на сайте контент или добавить изображение, не обязательно обладать навыками программирования или знаниями языка HTML.

Так как структура и дизайн сайта изменяется редко, а вот контент может изменяться достаточно часто, каждый день или даже каждый час, основной принцип работы большинства CMS основан на следующих элементах:

  • шаблон оформления (структура, дизайн) сайта
  • контент (содержание) сайта

Страницы сайтов, созданных на CMS по своей сути не являются отдельными страницами и по своей природе не существуют. CMS создает страницу для пользователю формируя их содержимое "на лету" в момент ее запроса. Страница как бы собирается воедино из разных частей, будь то: шапка, подвал, меню, центральная часть, правая и левая колонки (если таковые присутствуют), и другие структурные части страницы. При этом, в зависимости от ситуации, пользователю может быть показана какая-то уникальная информация. Яркий пример этому — корзина в интернет магазине.

Преимущества CMS

  • Скорость разработки — простой сайт с стандартным функционалом можно создать за очень сжатые сроки (от 5 минут)
  • Простота использования — так как для управления сайтом в большей степени используется интуитивно-понятный интерфейс, работать с CMS можно «методом тыка»
  • Разделение полномочий — так как дизайн, функционал и контент сайта разделены, а 99% CMS имеют функционал разграничения прав доступа, в CMS существует администратор системы, который может дать другому пользователю определенные права на управления системой. Таким образом, наполнением контента и разработкой сайта может заниматься группа лиц, каждый из них выполняющий свои задачи.
  • Схожесть — практически все CMS имеют одинаковые принципы работы, следовательно, разобравшись в одной CMS, Вам будет легче использовать другую
  • Расширяемость функционала — если система популярная, то как правило для нее написано огромное количество расширений (дополнений, модулей, плагинов, компонентов, шаблонов, виджетов), используя которые Вы можете расширить функционал после базовой установки CMS

Недостатки CMS

  • Ограниченость — как правило, CMS решает лишь часть задач и при дальнейшей разработки функционала сайта, существующих расширений может быть не достаточно для реализации задуманного.
  • Генерирование кода — система может генерировать код, который будет нагружать сервер, или бывает довольно сложно сделать так, чтобы CMS получала какие ни будь требуемые Вам данные.
  • Система шаблонитизации — для того, что бы реализовать задумку дизайнер, все равно придется прибегнуть к помощи специалиста

 

Что такое CMF? (Content Management Framework)

На текущий момент нет четкой границы между CMS и CMF.

Ряд CMS, предоставляющих API для расширения своей функциональности, претендуют на звание CMF, к таким системам можно отнести: Drupal, MODX Revolution.

Преимущества CMF

  • CMF объединяет с себе все плюсы CMS

Недостатки CMF

  • для того, что бы создать более сложные сайты или веб-приложения программисту необходимо изучить API, которое предоставляется выбраной CMF

 

Что такое PHP фреймворк? (PHP Framework)

Фреймворки (англ. framework — каркас, структура) — программные продукты, упрощающие создание и поддержку технически сложных или нагруженных проектов. Как правило, содержат только базовые программные модули, а все специфичные для проекта компоненты реализуются разработчиком на их основе.

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

Большая часть фреймворков реализуют шаблон проектирования Model—View—Controller (MVC).

Яркими представителями являются следующие фреймворки: Zend Framework, Symfony, Laravel, Yii, Kohana, CodeIgniter, CakePHP.