В прошлый раз я писал о таком явлении, как статические CMS, которые стали довольно популярны и готовы потеснить таких монстров, как WordPress и Drupal.
Их достоинства очевидны — очень небольшое потребление ресурсов, “чистота” контента, полный контроль и подход вида “сайт — это код”.
Прошёл месяц относительно успешной эксплуатации Hexo и, наверное, пора подвести некоторые итоги.
Достоинства статики
Ну не буду тут повторяться про производительность и “прозрачность”, отмечу лишь, что статика реально дисциплинирует и приучает генерировать контент вдумчиво и с минимальным количеством опечаток и помарок. Сами посудите — каждый раз редактировать нужный файл, потом скармливать его для публикации — это время и усилия. Так что приходится вычитывать “на ходу” и перед очередным коммитм/деплоем всё по несколько раз проверять.
Фундаментальность — “хренак, хренак и в продакшн” тут не совсем прокатывает. И тему подготовить, и структуру и учесть кучу мелочей. И вот когда всё готово — можно творить.
Если авторов много — процесс тоже упрощается. При совместной работе через GitHub/Bitbucket это либо pull-request, который можно отправить на доработку, ну а если авторы просто присылают готовый материал, тут проще просить “писать как умеют” и заниматься версткой в MarkDown самому, просто подгоняя контент под стандарты проекта. Поверьте, это проще, чем каждый раз бороться с интервалами, правилами вставки картинок и прочей ересью.
Ну и некоторые бенефиты найдутся для “тыжпрограммистов” и любителей командной строки — создание контента для них будет довольно комфортным.
Стоит упомянуть про переносимость. Сайт реально переносится за минуты на другой хостинг, домен, you name it, если надо. Это оценят, наверное либерасты, которых регулярно банят где-нибудь :).
Ну и независимость от авторов CMS. Так, мне лично вот этот самый Ghost намекает, что вышла новая версия и давно пора переходить на 1.х. Но тут выясняется, что темы частично несовместимы и нужно мощно рефакторить. Оно мне надо? Пока нет.
Недостатки (хотя они всего лишь перевернутые достоинства)
Правка “на ходу” практически невозможна. Это печально, ибо мир давно мобилен и исправить запятую, зайдя в админку с телефона очень сильно проще, чем соблюсти всю процедуру.
С картинками аналогично — замена изображения при работе в статике вроде и проста (взял, да заменил файл), ну а если выбор богат и нужно быстро просмотреть несколько вариантов?
И таки да, автоматизация публикации контента тяжеловата. Если Wordpress можно настроить так, чтобы он сам “воровал” контент с аналогичных сайтов (будь то автонаполнение через RSS или всякие продвинутые плагины для скрэйпинга), то со статический CMS строительство говносайтов становится какой-то плохо решаемой задачей. Хотя, конечно, автоматизировать можно что угодно, было бы время и желание.
Дальше — куча ручной подготовительной работы (см. выше про фундаментальность). Тему сверстай, генерацию проверь, настройки поменяй. Короче, точно не для ленивых.
Последствия — заброшенные сайты. Начали за здравие, закончили за упокой, ибо лень и тяжело.
Управление такой штукой, как “таги” или “метки” — подсказок ноль, мы предоставлены сами себе. Вот и рождаются дубликаты, ибо где-то опечатались или использовали заглавную букву в названии вместо строчной. Результат — бардак и поехавшая навигация — “МойТаг”, “мойтаг” и “мойТаг” — это три разных тага, хотя неискушенный автор (или ленивый) имел ввиду всего один.
Компромисс ?
Более менее публичные проекты я начинал делать на старой версии Movable Type, это было давно — до того, как MT оброс жиром в виде MySQL. Система меня более чем устраивала — контент жил в базе sqlite, но перед публикацией генерился практически статический html. Была возможность что-то крутить с использованием PHP, подробности уже давно канули в лету. Увы и ах — MT мёртв с этой точки зрения.
Ghost тоже использует sqlite в качестве хранилища, но всё генерится “на лету”. Однако, чувствует себя прекрасно почти везде, где можно запустить node.js. И у него прекрасный редактор.
На этом мысль обрывается :). Идеала нет и быть не может. Наверное.
Выводы
Статика — ваш выбор, если:
- Вы любите фундаментальный подход
- Готовы один раз “вложиться” в верстку темы и продумывание структуры сайта
- Пишете с небольшим количеством опечаток (просто забодаетесь править и делать redeploy)
- Требуется полный контроль над всем — отличный выбор для проектов “для себя”.
Статика точно не подходит для сайтов “на заказ”, которые будут поддерживаться другими людьми (заказчик не поймёт, правда).
Что касается интеграции со сторонними продуктами для какого-нибудь e-commerce, например, тут можно и выиграть — механизм бесконечно гибких шаблонов может помочь там, где возможности “классического” CMS будут исчерпаны.