LINUX.ORG.RU

Template toolkit: для чего это нужно?

 ,


0

1

У меня есть, возможно, странный вопрос, который я просто не могу не задать, поскольку пришлось столкнуться с ЭТИМ, и оно меня удивило, так что нужно с кем-нибудь поделиться.

Есть вот этакое: http://www.template-toolkit.ru/Manual/Intro.html

Оно встраивает в веб-страницы свой птичий язык, генерирующий части веб-страниц.

ОК. Но я только одного не могу понять: а в чём проблема делать то же самое просто из нормального кода на Perl?

Собственно, с шаблонизаторами сталкиваюсь часто, и если для меня как для сторонника концепции веб-приложения (максимум JavaScript, просящего сервер о различных услугах AJAX'ом) - генерация HTML'я на стороне сервера представляется немного удивительной, то шаблонизаторы вообще ломают мой мозг напрочь.

Ладно бы там можно было как в редакторе форм создать кнопку и задать ей свойство «овальная с коэффициентом 0.78», но ведь шаблонизаторы по сути не дают возможность уйти в своём понимании от б-гомерзкого HTML'я, они типа облегчают его генерацию. Ног в чём облегчение, если генерируется всё это тем же «языком программирования», из тех же HTML-тэгов...??

★★★★★

Последнее исправление: DRVTiny (всего исправлений: 1)

Облегчение в том, что в коде будут отсутствовать многочисленные вставки аля '<><><><><><......><><><>'. И разработку шаблонов можно отдать третьим лицам, ничего не знающих о перле и твоих исходниках.

anonymous
()

С моей точки зрения шаблонизаторы нужны для разделения зоны ответственности и для организации «этической инфраструктуры».

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

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

Jaberwock ★★★
()

для меня как для сторонника концепции веб-приложения (максимум JavaScript, просящего сервер о различных услугах AJAX'ом) - генерация HTML'я на стороне сервера представляется немного удивительной

В такой концепции генерация HTML'я на стороне сервера тоже имеет смысл: генерить статический контент, который параметризуется в процессе «компиляции» сайта.

annulen ★★★★★
()
Ответ на: комментарий от Jaberwock

Было бы здорово, если бы оно оперировало универсальными категориями: «таблица», «рисунок», «параграф», а потом гененировало из этого то, что я закажу. Например, если там таблица, а в ней всё остальное - это может быть и xls, и html и sql-statements на выходе.

Но если я не ошибаюсь, то как раз всякие разные doxygen'ы этим как раз и занимаются.

DRVTiny ★★★★★
() автор топика

Оно встраивает в веб-страницы свой птичий язык, генерирующий части веб-страниц. Но я только одного не могу понять: а в чём проблема делать то же самое просто из нормального кода на Perl?

Как ты такой толстый умудрился 5 звёд-то наскорить?

r_asian ★☆☆
()
Ответ на: комментарий от r_asian

Вот потому ты и 3-х ненаскорил, что как отвечать - не знаешь ничего, а только задаёшь дурацкие провокационные вопросы. Сначала в школу сходи, а потом - на ЛОР (не вместо школы, а после школы!).

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 1)
Ответ на: комментарий от nagibator

Не-а. Ни разу.

Я знаю, что шаблонизаторы - это абсолютный кусок дерьма родом из 90-х.

Но мне интересно, кто и почему этим пользуется.

Оказывается, им пользуются вакуумизированные верстальщики, которые вот птичий язык выучить могут, а Perl осилить не могут.

И неважно, что птичий язык того же Template'а - это в конечно итоге тот же Perl, но с изуродованным синтаксисом и кастрированными под корень возможностями.

Верстальщикам ЭТО удобно. Гм, ну не буду спорить, я хотя бы узнал, кому нравится ковыряться в дерьме. Ваккумизированным верстальщикам. Ну ОК, я не против.

P.S. Правда, я против приличного overhead'а, добавляемого такими приблудами. Каково это вообще - вместо гегерации разметки заниматься интерпретацией языка программирования из другого, тоже интерпретируемого языка программирования. И когда разработчики Template говорят о быстродействии, мне хотелось бы сказать, что они идиоты. Впрочем, так оно и есть, но им как-то пофиг. Так же, как и мне - на них... пофиг в общем :)

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от nagibator

А ты не в курсе, что уже в 2000-ом Рэндал Шварц вроде как книгу накатал по Template?

А в 2015-м в принципе генерация мусора из тэгов на стороне сервера и пересылка этого мусора клиенту - мягко говоря, не кажется самым правильным подходом.

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

Рэндал Шварц

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

генерация мусора из тэгов на стороне сервера и пересылка этого мусора клиенту

т.е. генерация хтмл по шаблону на сервере — плохо, а на клиенте — все ок?

nagibator
()
Ответ на: комментарий от nagibator

а на клиенте — все ок?

На клиенте - значит, самим движком браузера. Коль скоро браузеры ничего, кроме убогого HTML не понимают, то пусть сами себе его и генерируют. Это называется оправданным онанизмом, когда клиент сам платит за ту муть, которая ему типа удобна. За удобства нужно платить.

А вот сервер пусть напрягается, считает важные и полезные данные и отдаёт их в превосходно структурированном лаконичном формате. А там уж кто их съест - тупой браузер, обожающий плавать в собственных испражнениях или какая-нибудь умная консольная утилита, делающая всё то же самое, но в 1000 раз быстрее - это уже самому клиенту решать.

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

Нужен клиенту «драйвер» для отображения данных в браузере - ОК, мы ему его предоставим в виде 6-ти тэгов и соотв. js-обвязки, генерирующей всё остальное.

Нужен драйвер для генерации Excel-таблиц - пожалуйста, любой каприз за ваши деньги.

Но только в особо тяжёлых случаях наподобие специальных «мобильных» версий сайтов мы не можем дать возможность клиенту самому почувствовать ответственность за тот софт, который он использует.

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 3)
Ответ на: комментарий от DRVTiny

не, генерация хтмл на стороне клиента — хорошо, но в итоге иногда получается «ничего не поделаешь — это флеш».

nagibator
()
Ответ на: комментарий от DRVTiny

Оказывается, им пользуются вакуумизированные верстальщики, которые вот птичий язык выучить могут, а Perl осилить не могут.

Зашел в тред, чтобы полюбоваться илиткой не осилившей Perl, но при этом ругающей верстальщиков не осиливших Perl.

outtaspace ★★★
()

Одна из причин использовать шаблонизаторы типа TT это не столько попытка дать верстальщику более простой язык, сколько попытка заставить разработчиков не писать бизнес-логику в шаблонах. Ну и за счет того, что TT имеет парсер на С и более простой язык, чем Perl, скорость выполения и накладные ресурсы на рендеринг меньше.

troekrestie
()
Ответ на: комментарий от troekrestie

попытка заставить разработчиков не писать бизнес-логику в шаблонах.

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

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

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

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от nagibator

«ничего не поделаешь — это флеш».

Флеш изначально был каким-то фимозным заболеванием головного мозга в IT-индустрии. Впрочем, чего ещё можно было ожидать от индустрии, забывшей о LDAP, предпочитающей ужасающего вида XML-разметки (в этом плане лаконичный и мега-удобный JSON - это просто «досадное» исключение из правил) и т.д.

JavaScript - это стандарт ECMA Script 5 и 6, с ним на живых браузерах ИМХО проблем куда меньше, чем с HTML и CSS, которые каждый браузер умудряется «понимать» сильно по-своему.

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

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от DRVTiny

ничего не поделаешь — это флеш

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

nagibator
()
Ответ на: комментарий от anonymous

Предоставьте API с XML на выходе. Эта штука называется REST API, бывает такое в жизни, встречается временами :)

DRVTiny ★★★★★
() автор топика
Ответ на: комментарий от nagibator

Зрите в корень. Сайты - это изначально костыльное говно, на котором вот уже 20 лет как сидит весь мир и не парится по этому поводу.

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

Раньше в браузерах была вообще опция такая «отключить JavaScript». Ну порежет adblock куски javascript'а - ну и что с того?

Веб- это заработок за счёток количества, поэтому 1 тупой пользователь среди 10- миллионов ежедневно ничего абсолютно не стоит.

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

Веб- это примерно как совковая столовая: не нравится Васе Пупкину, что таскать кипяток в гранёном стакане больно и неудобно - ну и пусть Вася отправляется со своими претензиями в ресторан Прага, и там его обслужат по высшему разряду даже если руки у него из пластилина!

DRVTiny ★★★★★
() автор топика
Последнее исправление: DRVTiny (всего исправлений: 1)
Ответ на: комментарий от DRVTiny

Вся кривизна веба - лишь следствие исторических причин и экономических требований. Вы не в силах это изменить.

troekrestie
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.