May 16, 2021

7 причин НЕ использовать генератор статических сайтов

Генераторы статических сайтов (SSG) популярны и предлагают множество преимуществ, но в этой статье мы обсудим причины, по которым они могут не подходить для замены твоей системы управления контентом (CMS).

В моей предыдущей статье мы обсуждали, как сайт может получить выгоду от использования генератора статических сайтов:

  • Статический сайт - это набор страниц, содержащихся в базовых HTML-файлах. Ты можешь написать их вручную в текстовом редакторе, но управление ресурсами и повторяющимися элементами, такими как навигация, может стать проблематичным.
  • Система управления контентом хранит содержимое страниц в базе данных и предоставляет средства для редактирования и применения тем. Управление становится проще за счет гибкости, производительности, требований к серверу, безопасности и резервного копирования.
  • Генератор статических сайтов (SSG) - это компромисс между статическим сайтом, созданным вручную и полноценной CMS. Ты создаешь полный сайт один раз, используя исходные данные (например, файлы Markdown) и шаблоны. Полученный набор файлов переносится на твой живой сервер.
  • Термин "Jamstack" (JavaScript, API и разметка) используется по отношению к статическим сайтам. Он относится к росту числа фреймворков, бессерверных функций и связанных с ними инструментов, которые генерируют статические файлы, но позволяют добавлять сложные интерактивные функции.

Популярные генераторы статических сайтов это: Jekyll, Eleventy, Gatsby, Hugo и Metalsmith. SSG доступны для большинства языков.

Кажется, что SSG предлагают преимущества как CMS, так и статических пространств, но они могут не подходить для каждого проекта.

1. Ты сам по себе

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

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

2. Ограничение выбора

Существует множество генераторов статических сайтов, но даже самые популярные инструменты используются незначительной частью веб-сообщества. Тебе понадобится время, чтобы изучить, исследовать и оценить варианты. Одним из первых SSG был Jekyll, основанный на Ruby, но, хотя тебе и не обязательно знать Ruby, будет полезно, если ты уже использовал этот язык.

Существует множество CMS, но есть один очевидный выбор: WordPress. На нем работает более 40% Интернета, так что помощи от него предостаточно. Опять же, будет полезно, если у тебя есть некоторый опыт работы с PHP, но даже не разработчик может создать приемлемый сайт, используя готовые темы и плагины.

3. Время начальной настройки

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

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

4. Нет административного интерфейса

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

  • используя существующей CMS в качестве источника данных SSG или
  • обеспечить более простой рабочий процесс, таких как редактирование файлов на основе Git в StackEdit или Hackmd.io.

Но это еще более отразится на времени первоначальной разработки.

5. Согласованность веб-сайта

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

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

6. Управление большими сайтами

Рассмотрим веб-сайт с тысячами страниц, ежедневными публикациями контента, оперативными новостями в режиме реального времени и десятками авторов в разных местах. Можно управлять контентом с помощью генератора статических сайтов, но:

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

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

7. Функциональность на стороне сервера

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

  • Добавление стороннего компонента на стороне клиента, например, поиска Angolia или комментариев Disqus.
  • Создание собственных серверных (или бессерверных) API, которые могут быть использованы клиентским JavaScript для добавления необходимых функций.
  • Генерация страниц, содержащих <?php...?> или аналогичные блоки кода на стороне сервера.
  • Переход на фреймворк, такой как Next.js, который по возможности отображает статический контент, но также позволяет обрабатывать его на стороне сервера.

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

Подходит ли тебе статический сайт?

Прежде чем принимать какое-либо решение, изучи:

  • Твои требования к проекту, размер, сложность, частота обновления и т.д.
  • Твои пользователи, их местоположение, ожидания и т. д.
  • Навыки разработки твоей команды
  • Любые факторы хостинга и/или развертывания.

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

Источник: https://www.sitepoint.com/7-reasons-not-use-static-site-generator/