Шаблонный движок

makvik

Новичок
Шаблонный движок

Сегодня вот задумался. Какие шаблоны разумнее использовать в проекте с высокой нагрузкой? Smarty или XSLT ?
 

AmdY

Пью пиво
Команда форума
из этих смарти симпатичнее смотрится, можешь потестить
 

AmdY

Пью пиво
Команда форума
в принципе не думаю что шаблонизатор в таких проетах является краеугольным камнем, хотя у меня ещё опыта маловато и повидал я не много
 

makvik

Новичок
Автор оригинала: AmdY
из этих смарти симпатичнее смотрится, можешь потестить
Да с обоими движками имел дело, правда в таких проектах, где производительность стояла где-то на десятом месте.

Автор оригинала: triumvirat
PHP
так работать явно быстрее будет, но... ( зачем расписывать то, что уже сто раз писалось? )

-~{}~ 13.01.08 21:06:

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

korchasa

LIMB infected
Re: Шаблонный движок

Автор оригинала: makvik
Сегодня вот задумался. Какие шаблоны разумнее использовать в проекте с высокой нагрузкой? Smarty или XSLT ?
Любые из тех, кто сможет "отрисовать" страницу за необходимый промежуток времени ;)
Что такое "высокая нагрузка"?

ЗЫ: Тут, ИМХО, xslt тут не очень уместно, т.к. это просто формат. Должен же кто-то преобразование делать?
 

fixxxer

К.О.
Партнер клуба
если удобна смарти - берем смарти. оно не настолько проигрывает blitz/php-templates чтобы это имело большое значение, если речь не идет об _очень_ высоких нагрузках.

по моим тестам, смарти проигрывает blitz-у на 10-15% если blitz-ем пользоваться, как сказано в его мануале, и на 25-30% если им пользоваться правильно %)

-~{}~ 13.01.08 21:19:

.. да, разумеется, измерялся только view-код, в реальном приложении на фоне остальных операций разницу вообще сложно заметить
 

AmdY

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

makvik

Новичок
Автор оригинала: *****
по поводу XSLT можно почитать здесь: http://rizhikov.habrahabr.ru/blog/33728.html
а для высоконагруженного проекта порекомендую blitz

-~{}~ 13.01.08 21:07:


Не читал ни разу. Распиши кратенько?
(1) Спасибо, почитал по ссылочке. Автор в чём-то прав, надо подумать над его словами.

(2) Я имел в виду разделение представление и содержимого ))

-~{}~ 13.01.08 21:48:

Автор оригинала: AmdY
можно построить проект таким образом, чтобы потом иметь возможность поменять каждый кирпичик, в том числе и шаблонизатор
ну, учитывая то, что при смене шаблонного движка нужно будет переписывать ещё и шаблоны, приятного в этом действе я вижу мало )
 

Фанат

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

-~{}~ 13.01.08 21:58:

не содержимое только ты хотел сказать, а логику приложения, наверное
 

dark-demon

d(^-^)b
пара тэзисов:

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

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

fixxxer

К.О.
Партнер клуба
1. клиентская шаблонизация - это пока что к сожалению только теория. (попробуй опровергнуть. у меня вот есть ff2, safari 3, opera9, msie6, msie7 - вот шоп везде работало, и одинаково).

а на сервере ессно сдохнет всё.

2. в принципе, согласен, однако в любом случае какая то разметка нужна. можно конечно использовать dom но это надо парсить каждый шаблон целиком как xhtml, а это слишком затратно. особенно излишеством это будет когда надо тупо подставить пару переменных.
проще расставить примитивные метки типа {$var}/ {BEGIN}/{END} - это парсится очень легко.
 

Beavis

Banned
Автор оригинала: dark-demon
в шаблонах стоит избегать конструкции ветвления и циклы.
а что тогда вместо этих конструкций использовать? как без ветвлений и циклов выводить данные то?
 

Фанат

oncle terrible
Команда форума
Кстати, о тезисах.
Зачем нужны шаблоны, так никто и не знает ;-)
 

dark-demon

d(^-^)b
> есть ff2, safari 3, opera9, msie6, msie7 - вот шоп везде работало, и одинаково

http://smileg.jino-net.ru/


> а что тогда вместо этих конструкций использовать? как без ветвлений и циклов выводить данные то?

юзать конструкции вида <applay-templates />


> Зачем нужны шаблоны

для формирования документов, посредством подстановки в них данных.
 

atv

Новичок
По поводу "http://rizhikov.habrahabr.ru/blog/33728.html" - вспоминается известная басня "Обезьяна и очки". Особенно улыбнуло "Невозможность создавать библиотеки и повторно использовать результаты работ". А чего ещё можно было ожидать от создателей Битрикса :D - очередного маркетингова хода, мол XML/XSLT это хня, и у нас этой хни НЕТ.

По поводу XSLT, +1 dark-demon, и ещё тут на форуме tony оставлял ссылку на екстеншн XSLT кеширования, увеличивает производительность преобразования до 25%. Мы в своём текущем проекте попробуем заюзать этот екстеншн.
 

korchasa

LIMB infected
Кто нибудь все таки скажет что такое "высокие нагрузки"?

По поводу xslt: какого времени генерации страницы можно добиться, при сложности страницы примерно, как страница сообщения с хабра, на двухголовом Xeon'е, при условии, что он только генерацией будет заниматься?
 
Сверху