Template Toolkit — различия между версиями

Материал из YourcmcWiki
Перейти к: навигация, поиск
(Новая: {{CPAN|Template::Toolkit}} (а также TTk или просто TT) — шаблонизатор, Perl-библиотека для отделения уровня представле...)
 
(«Не используйте Template Toolkit!»)
Строка 7: Строка 7:
 
Или же очередная серия «[[Заметки об идиотизме|Заметок об идиотизме]]».
 
Или же очередная серия «[[Заметки об идиотизме|Заметок об идиотизме]]».
  
Главные минусы TT — его производительность, и, как это ни парадоксально — богатство возможностей, провоцирующее на создание сложных шаблонов и перенос в них половины логики приложения. В итоге идея о простых шаблонах, которые может редактировать даже дизайнер, накрывается медным тазом. Для примера достаточно взглянуть на шаблоны и код Bugzilla.
+
Главные минусы TT — во-первых, его производительность, а во-вторых, как это ни парадоксально — богатство возможностей, провоцирующее на создание сложных шаблонов и перенос в них половины логики приложения. В итоге идея о простых шаблонах, которые может редактировать даже дизайнер, накрывается медным тазом. Для примера достаточно взглянуть на шаблоны и код Bugzilla.
  
 
Производительность TT страдает в первую очередь от {{CPAN|Template::Stash}} (от англ. ''stash'' — тайник, «заначка») — зачем-то введённого отдельного уровня хранения данных — по сути, собственной реализации хеш-таблицы со множеством наворотов, проверок и вообще лишних действий, созданной, по всей видимости, для обеспечения нетривиальных возможностей вроде установки функции-getter’а вместо значение переменной шаблона (возможность, которой за весь опыт веб-разработки лично мне пользоваться не приходилось). В Stash при каждом получении значения какой-либо переменной передаётся ссылка на массив — путь к этой переменной, что как минимум сразу делает невозможным «компилированный» доступ к переменным.
 
Производительность TT страдает в первую очередь от {{CPAN|Template::Stash}} (от англ. ''stash'' — тайник, «заначка») — зачем-то введённого отдельного уровня хранения данных — по сути, собственной реализации хеш-таблицы со множеством наворотов, проверок и вообще лишних действий, созданной, по всей видимости, для обеспечения нетривиальных возможностей вроде установки функции-getter’а вместо значение переменной шаблона (возможность, которой за весь опыт веб-разработки лично мне пользоваться не приходилось). В Stash при каждом получении значения какой-либо переменной передаётся ссылка на массив — путь к этой переменной, что как минимум сразу делает невозможным «компилированный» доступ к переменным.

Версия 17:08, 28 августа 2009

Template::Toolkit (а также TTk или просто TT) — шаблонизатор, Perl-библиотека для отделения уровня представления от уровня приложения. Короче говоря, относительно простой язык программирования, упрощающий генерацию динамических страниц, в основном, хотя и не обязательно — HTML-страниц.

Статья Template Toolkit в русскоязычной Википедии говорит нам о том, что по сути своей это «легковесная» библиотека, в отличие от «полновесных» фреймворков для построения веб-приложений.

«Не используйте Template Toolkit!»

Или же очередная серия «Заметок об идиотизме».

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

Производительность TT страдает в первую очередь от Template::Stash (от англ. stash — тайник, «заначка») — зачем-то введённого отдельного уровня хранения данных — по сути, собственной реализации хеш-таблицы со множеством наворотов, проверок и вообще лишних действий, созданной, по всей видимости, для обеспечения нетривиальных возможностей вроде установки функции-getter’а вместо значение переменной шаблона (возможность, которой за весь опыт веб-разработки лично мне пользоваться не приходилось). В Stash при каждом получении значения какой-либо переменной передаётся ссылка на массив — путь к этой переменной, что как минимум сразу делает невозможным «компилированный» доступ к переменным.

Так как обычный Stash — просто кошмар неиллюзорный, а Template Toolkit был (да и до сих пор) весьма популярен, в районе года 2000 появилась его XS-версия (то есть, переписанная на C) — Template::Stash::XS. После этого TT-шаблонам, всё-таки, полегчало. Но, во-первых, Stash никогда не был единственным замедляющим работу TT уровнем, во-вторых, даже Stash::XS всё равно работает не так быстро, как мог бы, а в-третьих, Stash::XS долгое время имел различные баги — например, поддержка UTF-8 в Template::Stash::XS появилась только 4 июля 2009 года.

Ссылки