На днях была поднята интересная тема — о шаблонах веб-приложений. Давайте еще немного поговорим об этом.
Уважаемые коллеги, разрешите задать вам исключительно профессиональный вопрос…
Традиционно принято хранить фрагменты шаблонов веб-приложений в отдельных файлах. Поэтому техпроцессы работы с шаблонами выглядят так.
Первое создание шаблона
1. Подготовка и согласование дизайна
2. Верстка одного или нескольких демонстрационных HTML-файлов
3. Приемка
4. «Нарезка» — выделение многочисленных фрагментов и размещение их по множеству небольших файлов
5. Интеграция с CMS — где-то (хотя бы на бумаге или в голове верстальщика) хранится информация, где что, откуда, и в какой версии каждый конкретно этот шаблон в этом отображении.
Апдейт
1. Подготовка, верстка, приемка
2. Нарезка. Всего или только какой-то выбранной части?
3. Замена. Мат.
Использование шаблонов CMSкой
1. Скрипт в процессе выполнения читает десяток файлов. Если нет кеширования в ОЗУ (в переменной) — тогда читает их десятки или сотни раз.
2. Содержимое подвергается разбору через регулярные выражения, строковые функции, export() и т. д.
3. Результат подвергается конкатенации и возвращается браузеру.
Результат — скушано памяти по 1 кб на обработку каждого файла. Если алгоритм не предусматривает кеширования содержимого шаблонов в ОЗУ — при больших выборках заметно нагружается и ФС.
Альтернатива
Давайте просто обсудим альтернативный вариант: хранить все шаблоны в одном непорезанном файле, поместив внутрь теги для парсера.
Тогда процессы изменятся так.
Первое создание шаблона
1. Подготовка и согласование дизайна
2. Верстка одного или нескольких демонстрационных HTML-файлов
3. Приемка — показываем файлы как есть, и их же 1:1 кладем в ФС CMSки
4. Тут уже ничего не надо делать
5. Тут уже ничего не надо делать
Апдейт
1. Подготовка, верстка, приемка
2. Нарезка. Всего или только какой-то выбранной части?
3. Заменить один файлик
Использование шаблонов CMSкой
1. Скрипт в читает один файл. Шаблон в строке разбирается на фрагменты и лежит в ОЗУ.
2. Содержимое подвергается разбору через регулярные выражения, строковые функции, export() и т. д.
3. Результат подвергается конкатенации и возвращается браузеру.
В среднем шаблоны весят 3-5КБ. Разобрать его по тегам — не дороже, чем список данных с тегами отрендерить.
И главное:
- Нет необходимости нарезать шаблоны на фрагменты
- Удобнее показывать — все на одной странице. Если хочется — можно сделать и на нескольких
- То, что согласовано — попадает в продакшн «как есть»
- В ФС лежит цельный шаблон, после разбора в ОЗУ — фрагменты.
Коллеги, что вы думаете об этом?
Может быть где-то уже видели такое решение?
Какие есть или могут быть плюсы и минусы?
Спасибо!
Автор: customtema