Яндекс.Метрика

Дизайн-журнал №1. Актуальная информация для дизайнеров, веб дизайнеров, программистов и разработчиков сайтов.

Семь причин использовать генераторы статических сайтов

18 апреля 2016 | Опубликовано в статьюшечки | 3 Комментариев »

По словам Крэйга Баклера, английского веб-консультанта, создавшего свою первую страницу для IE2.0 в далеком 1995 году и написавшему тысячи полезных статей, генераторы статических сайтов становятся очень популярными, и, если предсказания верны, использование их значительно вырастет в 2016 году. Давайте же узнаем, что означает сам термин «генератор статических сайтов» и почему их так настоятельно советуют использовать.

Что такое статический сайт?

Вспомните самый первый сайт, который вы создали. Многие разработчики начинали с создания серии простых HTML страниц. Каждая из них могла содержать картинки, CSS и, возможно, JavaScript. Может быть, вы даже загружали эти файлы напрямую из файловой системы, без всякого веб-сервера. Жить было просто.

Трудности появляются, когда сайт растет и становится сложнее. Давайте возьмем меню навигации и рассмотрим на его примере: оно может быть в каждом файле, но при создании новой страницы необходимо будет обновлять все файлы, что содержат меню. Когда папок на сайте становится больше, даже ссылки на изображения и CSS могут вдруг стать «битыми». Возможно, вы рассматривали такие варианты, как server-side с или без PHP, но еще более легким способом может показаться CMS (content management system).

Что такое CMS?

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

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

Все это происходит практически мгновенно. Шаблоны могут включать в себя код для создания меню, различные блоки, подключение стилей и многое другое. И вот жизнь снова прекрасна, и, кстати, более 25% людей выбирают для управления своим сайтом WordPress, построенный на связке PHP+MySQL.

К сожалению, при использовании CMS получаем набор других проблем:

  • вам необходимо придерживаться CMS при работе с сайтом, а это может быть неудобным при добавлении текста или компонентов;
  • серверу необходимо генерировать кучу страниц, и это заметно влияет на производительность;
  • обновление CMS и сбой базы данных может вообще «уронить» сайт.

Что такое генератор статических сайтов?

SSG (Static Site Generator) — это удачный компромисс между использованием сайта, написанного вручную, и CMS. При этом вы сохраняете преимущества обоих вариантов. По сути вы создаете сайт, состоящий только из HTML файлов, но с помощью CMS-подобной концепции, такой как шаблоны. Контент в подобном случае можно извлекать из базы данных, но чаще используются Markdown файлы.

Сайт можно генерировать на вашей машине или промежуточном сервере, а потом дислоцировать полученные HTML файлы на live-сервере. Пользователь не почувствует разницу. Эта концепция использует такой интерфейс как WordPress для администрирования контента, но дает другим системам возможность доступа к данным с помощью REST API.

Таким образом, SSG может построить статический сайт, используя содержимое страниц в WordPress, извлеченное с внутреннего сервера. В итоге HTML файлы могут быть загружены на сервер, но установка WordPress не должна быть доступна извне.

Одни из самых популярных генераторов статических сайтов — это Jekyll, Pelican, Hugo and Metalsmith. В интернете вы можете найти еще больше разнообразия.

Давайте выделим явные плюсы использования SSG. 

1. Гибкость

CMS, как правило, ограничивает ваши возможности, потому что все привязано к конкретным полям в базе данных. Если вы захотите добавить виджет, например, Twitter на какие-то страницы, нужен будет плагин, шорткод или что-то еще.

В статическом сайте можно вставить виджет непосредственно в файл в виде фрагмента кода. Есть совсем небольшие ограничения, т.к. вы освобождены от тех, что накладывает CMS.


2. Высокая производительность

Многие CMS приложения предлагают встроенные (или в виде плагинов) системы кэширования, чтобы обеспечить генерирование страниц и использование их повторно, если необходимо. Это эффективно, но лишние действия все равно имеют место быть: например, при проверке файлов кэша и повторной генерации страниц.

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


3. Меньше серверной зависимости

Что нужно для установки WordPress:

  • совместимая операционная система типа Ubuntu или CentOS
  • веб-сервер — например, Apache или NGINX
  • PHP с необходимыми расширениями
  • MySQL
  • сам WordPress
  • шаблон (тема)

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

В то же время, статический сайт — очень легкий и может быть размещен на любом сервере, который в состоянии отдавать файлы. И вам больше ничего не нужно устанавливать, настраивать и обновлять.


4. Более надежный

CMS — это целый комплекс, с огромным количеством перемещаемых частей и «точек отказа». Запуская сайт на вордпрессе, не зависимо от того, колько времени он уже проработал, вы точно хотя бы раз столкнетесь с этой страшной фразой «Failed to establish a database connection». Опыт подсказывает, что непредвиденные проблемы в CMS могут возникнуть в результате внезапного скачка трафика, из-за чего может рухнуть база данных или разорваться активные соединения.

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


5. Высокая безопасность

Можно выделить море причин, по которым кто-то решит атаковать ваш сайт: угон трафика, мошенническая реклама, ссылки и пр.

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

У статического сайта очень мало или вообще нет функциональности на стороне сервера. Вы не можете получить доступ с помощью скриптов или за счет дыр в безопасности базы данных. У кого-то, возможно, и получится получить доступ с помощью SSH или FTP, но им нужно будет очень постараться, чтобы принести вред больше, чем порча страниц или загрузка файлов. Быстрая команда «git status» или, на крайний случай, простая проверка папки сможет быстро выявить следы несанкционированного доступа. Вам просто будет необходимо изменить пароли, удалитьвесь сайт полностью и восстановить все заново.


6. Управление контентом 

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

В случае статического сайта чаще всего используются Markdown файлы. Их использование ограничивает возможности пользователей, в результате они делают меньше ошибок, и страница отображается в первозданном виде. А для удобного редактирования файлов можно пользоваться удобным сервисом StackEdit.


7. Контроль версий и тестирование

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

Статический сайт более безопасен, если, конечно, предположить, что весь контент хранится в Markdown файлах и вы используете систему контроля версий типа Git. И даже после сохранения измененных файлов сделанные изменения можно легко «откатить». Тестирование тоже упрощаетсч, т.к. сайт может быть собран и просмотрен где угодно, даже на компьютере клиента.

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


Автор - Craig Buckler 

Перевод — Дежурка

Смотрите также:

 




Комментарии

  1. Demimurych
    Thumb up Thumb down 0

    Меня поражает подмена понятий которая последнее время происходит в связи с этими конструкторами. В сущности, любая CMS это РОВНО ТОТ ЖЕ ГЕНЕРАТОР СТАТИЧЕСКИХ сайтов. Разница только в том, что используя CMS можно сделать гораздо больше, и, как следствие, для этого нужен специалист соответствующей квалификации.

    Потому, совершенно неверно говорить о преимуществах или недостатках одной системы над другой.

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

    Чувак Ответ:

    Thumb up Thumb down 0

    Demimurych, ты не понял сути: CMS — это кусок гавна, который отдает контент, а SSG — это классика, которая формирует то, для чего разрабатывался WWW.