Тема 4. На каком движке лучше всего создавать сайт?

3
2642

Продолжаю цикл статей о сайтостроении для начинающего веб-программиста. В предыдущей статье мы говорили о таких понятиях, как динамический сайт на PHP. В этом посте я предлагаю разобраться в том, какой движок для сайта лучше. Конечно, однозначно ответить на этот вопрос невозможно и на то есть причины. Все начинающие веб-мастера задаются только одним вопросом: «Где найти готовую инструкцию по созданию идеального сайта?», и их можно понять, ведь только начинающий свой путь веб-программист не хочет попасть впросак изучая устаревшую или «неправильную» технологию.

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


resume professor

Само понятие «движок для сайта» – очень широкое, это может быть как один управляющий скрипт index.php, в котором стандартной PHP функцией include() собираются («инклудятся») файлы, содержащие статические куски HTML кода, так и более сложные программы, CMS из их числа. Приведу простой пример. Содержимое следующих частей сайта: «шапка», блок с меню, блок с контентом и «подвал» — вынесено в отдельные файлы, которые собираются в единое целое в index.php. Файлы (страницы) с контентом, если их много, можно вынести в отдельную папку /include и «инклудить» уже из нее при помощи массива, при этом для каждой страницы можно создать уникальные заголовки и мета-данные, прописанные в конфигурационном файле config.php.


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

О роли СУБД в процессе создания сайта

движок для сайта

Очень часто для удобного обращения с большим количеством данных программисты (и не только) используют базы данных. В случае с сайтом, текстовое или графическое содержимое часто выносится в базу данных, которая хранится на удаленном сервере. Примером СУБД (системы управления базами данных) является MySQL. Вы, наверняка, познакомитесь с MySQL (или PostgreSQL) при организации хостинг-пространства для вашего сайта, использовании более-менее сложного скрипта, или в процессе установки CMS системы. Но сейчас мы не о параметрах хостинга, сейчас речь о технологии.


resume penguin

Технологически это так: данные расположенные в базе создаются, модифицируются и управляются при помощи SQL-запросов, которые, в свою очередь, создаются на основе языка структурированных запросов SQL. Но это в чистом виде. Язык PHP, в свою очередь, наделен различными функциями для работы с MySQL. Через php-скрипт мы можем подключаться к серверу MySQL и выбирать базу данных (mysql_connect(), mysql_select_db()), передавать sql-запросы (mysql_query()), обрабатывать результаты запросов (пусть mysql_fetch_array()) и завершать mysql-соединения.


Под сервером базы данных понимается не только отдельно установленная машина выполняющая роль сервера MySQL, но и функциональный сервер. Грубо говоря одна «железка» может служить и web-сервером (apache, nginx), и mysql-сервером и т.д. Но об этом мы поговорим в статье, посвященной выбору хостинга. Как вы уже поняли, подобные технологии применяются при создании/управлении сайта в целом. Следует заметить, что web-программисты иногда используют базы данных на текстовых файлах, но это уже отдельная история.

Что лучше: «голый» PHP или фреймворк?

Наверное подобная тема не совсем для новичков, тема достаточно «холиварная», но иметь некоторые представления будет не лишним для того, чтобы правильно определиться с выбором лучшего движка для своего сайта. Если мы берем за основу PHP, а есть и другие скриптовые языки программирования, то следует сказать, что многие программисты используют так называемые MVC-фреймворки основанные на языке PHP. Использование фреймворков — это особый подход к проектированию и созданию веб-проектов. Zend Framework, Symfony, CodeIgniter, Kohana и многие другие, созданы для быстрой разработки приложений на PHP, но это не единственный критерий. Однако, сам фреймворк вам тоже придется изучать. Многие фреймворки, как своеобразная «надстройка» над PHP — требовательны к ресурсам сервера. Специалисты много и упорно спорят на тему: «Что лучше использовать в качестве движка для сайта?». Одни утверждают, что если есть PHP, тогда зачем фреймворк, зачем посредник «съедающий кусок ресурсного пирога», ссылаясь на то, что самые крупные и популярные сайты написаны на чистом PHP. Другие считают разработку при использовании фреймворка более передовой и удобной — следующим шагом на пути развития PHP программиста. Некоторые считают, что при использовании фреймворка, при определенных условиях, можно даже «выиграть» в производительности. Сам PHP умеет работать в разных режимах (например — mod_php), что также может сказаться на производительности.

Кодить самому или выбрать решение из «коробки»?

какой лучший движок для сайта

При создании сайта на PHP или PHP + фреймворк нужно отдавать себе отчет в том, что уровень программирования у всех разный, что для создания мощного сайта не достаточно просто знаний синтаксиса языка. Критериев к качественно исполненному (с программной точки зрения) сайту — очень много (безопасность, функциональность, производительность и т.д.) и учесть всех нюансов часто не под силу начинающему. Есть специалисты, занимающиеся исключительно тестированием новых программных проектов, эта не простая процедура очень важна при создании сайта с использованием уникального программного кода. Все это не зря и именно об этом вспоминают опытные программисты, когда употребляют неблагозвучную фразу «говнокод» по отношению к очередному кривому модулю для популярной CMS или какому-то неудачному проекту с открытым исходным кодом. Все это говорит о том, что определиться с лучшим движком для своего сайта можно только в том случае, если подбирать движок под конкретные особенности своего сетевого проекта

Не бывает ничего идеального и не секрет, что даже многие CMS (распространяемые под разными лицензиями, в том числе и коммерческие) не всегда (или не полностью) соответствуют вышеперечисленным критериям качества программного кода. Однако, пишут CMS и составляют обновления для них программисты высокой квалификации (в большинстве своем), подобные системы тестируются на проектной стадии и сообществом, что сокращает шансы напороться на проблемы разного характера. Для коммерческих CMS расширения (компоненты, модули, плагины) создаются централизованной группой разработчиков самой CMS или одной из групп, а вот расширения для open source CMS могут создаваться кем угодно и как угодно. Зачастую, именно в расширениях и наблюдается «говнокод» — со всеми вытекающими. Однажды, один из моих сайтов на базе CMS Joomla был взломан по вине хостинг провайдера (да, хостеры тоже грешат «криворукостью»), но вредоносный код был размещен именно в сторонних расширениях (популярных и с хорошей репутацией). В целом, статей на данную тему в интернете больше чем «пупырышек на теле бегемота», но понимание придет не сразу, потому что все это уже из области программирования, которым владеют не все создатели сайта. Не всем оно и надо. Теперь пора поговорить о CMS системах подробнее, моя следующая статья посвящена именно им — системам управления контентом (CMS).

3 КОММЕНТАРИИ

  1. Я на своем сайте использую именно WordPress, для начинающих — это лучший вариант. У моего знакомого стоит Joomla, так он даже не смог найти бесплатный шаблон под тематику своего сайта. А у меня с WordPress таких проблем нет. Кроме того сайт на WordPresse легче оптимизировать. Да и скорость загрузки страниц выше, чем на Joomla. Плагины, которые используются на сайте, не так сильно влияют на производительность. Но я слышал, что и Joomla имеет не мало преимуществ перед WordPress. Но все для новичков WordPress будет лучшим выбором.

  2. Однозначного ответа конечно на такую тему нет, но я, как разработчик сайтов однозначно могу сказать, что все зависит только лишь от требований, которые необходимо выполнить. Решение "Из коробки" крайне редко отвечает требованиям более-менее крупных проектов, приходится собирать какие-то велосипеды и костыли, что вовсе не хорошо. Поэтому для решения крупной задачи однозначно стоит писать все с нуля. Но! Необходимо знать, что написание более-менее достойной CMS требует от программиста больших знаний во всех отраслях: оптимизация кода, оптимизация бд, кэширование и т.д.

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