Думы о шаблонах

Nov 16, 2010 01:32


У меня есть очередной вопрос к вам, мои уважаемые читатели. Задумался я над таким феноменом, как шаблонные движки, в простонародье templating engines. Следующие варианты мне встречались:
Html с вкраплениями своего языка

Примеры: собственные шаблоны веб-фреймворка (django templates), универсальные шаблонные движки (velocity, freemarker), в т.ч. и ( Read more... )

нужна ваша помощь, веб-шмеб, девелопмент

Leave a comment

Comments 15

sorhed November 15 2010, 19:40:45 UTC
Для AJAX-а люди придумали pure.js, который я использую и всем советую.

Reply

sorhed November 15 2010, 19:43:04 UTC
Благодаря его наличию, кстати, туда-сюда можно гонять не HTML-снипеты, а чистый как слеза комсомолки JSON.

Reply

tonsky November 15 2010, 20:16:14 UTC
Я вот как-то не очень понимаю, правда, зачем гонять именно json, кроме как когда надо сильно канал экономить? Почему серверу не заниматься и темплейтингом, тем более что он им и так уже занимается для генерации основной страницы. Зачем второй шаблонизатор на клиенте?

Reply

sorhed November 15 2010, 20:19:27 UTC
Тогда весь «сервер» заключается в REST-сервисах и одной статической страницей с HTML и javascript'ом.

Reply


aka_author November 15 2010, 20:22:15 UTC
*** Неужели он настолько сложен для дизайнеров? Или здесь важнее безопасность? Или что? ***

Тут все, как по Марксу.

Довелось мне как-то раз писать документацию к одному движку типа "HTML с вкраплениями языка". И заказчик сказал примерно следующее: вы только не пишите, что у нас там язык программирования. А то нам кодерам придется платить, как программистам.

Reply


kastaneda November 15 2010, 23:12:28 UTC
1. Глупость и безблагодатность человеческая безгранична, и это можно наблюдать на примере темплейтных движков для PHP. Достойно лучшего применения упорство, с которым на PHP пишут жалкое подобие самого PHP.

2. XSLT как бы стандарт, но очень уж трудно найти верстальщика.

Reply

ext_246282 November 16 2010, 02:51:31 UTC
Про шаблонизаторы и PHP отлично сказано.

К слову, когда мне в Ruby потребовался "наколенный" шаблонизатор для подстановки значений переменных и выражений в HTML, то на его написание с нуля ушло 20 минут. ;)

Reply


norguhtar November 16 2010, 03:04:06 UTC

Что заставляет людей выдумывать свой птичий язык? Понятно, что для убогой (Java) это необходимость, но для нормальных языков вроде python? Неужели он настолько сложен для дизайнеров?

Проще читается. К примеру можно взять jstl и jsp обеспечивающих аналогичный функционал и сравнить. Так-как обладает усеченным функционалом проще объяснить верстальщику и дизайнеру где тут что. Опять же для php к примеру это излишне :)

Когда они уже угомонятся и хотя бы синтаксис какой-нибудь стандартный/общий будут использовать?

Никогда :)

Существуют ли нормальные реализации варианта 3, лишенные выписанных недостатков?

Тут опять имеется все та же проблема что и у XML конфигураций. Разделение самой настройки и предмета настройки. В Java это сильно облегчается аннотациями. Если идти по этому пути получится или пункт 1 или пункт 2.

Существуют ли какие-нибудь продвинутые разработки про поддержку аякса (то есть чтобы удобно гонять туда-сюда html-сниппеты и джаваскрипты всякие) в вариантах 1-2? Я к этому скорее скептически отношусь, но вдруг я чего-то ( ... )

Reply


anonymous November 16 2010, 07:12:22 UTC

Пункт 3 - это натягивание ужа на глобус. Рано или поздно скотинка лопается. В пунктах 1 и 2 имеем два противоречия: безопасность - мощность и простота - изучение полноценного языка. Дополнительно к этому для унивесальных шаблонизаторов встает проблема выбора синтактсиса и разметки, не интерферирующей с синтаксисом выхода (отсюда всяческие «{{-» и «[[*»). Еще этим синтаксическим уксусом отгоняют любителей писать логику внтури шаблонов.

ИМХО, самый удобный вариант в пункте 2. В ERB все неплохо, в Web.py (templetor) все тоже неплохо, пока целевой язык разметки пофигистически относится к пробельным элементам; проблемы у Web.py начинаются с RST и прочими благодаря пробельно-отступному освенциму в самом Пайтоне.

Так что везде есть дроубэки. Надо выбирать что-нибудь простое и динамичное, с возможностью докрутить до нужного, не сломав себе голову, вплоть до второй версии проекта или его смерти :)

Reply


Leave a comment

Up