13 810
правок
Изменения
Новая: {{CPAN|Template::Toolkit}} (а также TTk или просто TT) — шаблонизатор, Perl-библиотека для отделения уровня представле...
{{CPAN|Template::Toolkit}} (а также TTk или просто TT) — шаблонизатор, Perl-библиотека для отделения уровня представления от уровня приложения. Короче говоря, относительно простой язык программирования, упрощающий генерацию динамических страниц, в основном, хотя и не обязательно — [[rupedia:HTML|HTML]]-страниц.
Статья [[rupedia:Template_Toolkit|Template Toolkit]] в русскоязычной Википедии говорит нам о том, что по сути своей это «легковесная» библиотека, в отличие от «полновесных» фреймворков для построения веб-приложений.
== «Не используйте Template Toolkit!» ==
Или же очередная серия «[[Заметки об идиотизме|Заметок об идиотизме]]».
Главные минусы TT — его производительность, и, как это ни парадоксально — богатство возможностей, провоцирующее на создание сложных шаблонов и перенос в них половины логики приложения. В итоге идея о простых шаблонах, которые может редактировать даже дизайнер, накрывается медным тазом. Для примера достаточно взглянуть на шаблоны и код Bugzilla.
Производительность TT страдает в первую очередь от {{CPAN|Template::Stash}} (от англ. ''stash'' — тайник, «заначка») — зачем-то введённого отдельного уровня хранения данных — по сути, собственной реализации хеш-таблицы со множеством наворотов, проверок и вообще лишних действий, созданной, по всей видимости, для обеспечения нетривиальных возможностей вроде установки функции-getter’а вместо значение переменной шаблона (возможность, которой за весь опыт веб-разработки лично мне пользоваться не приходилось). В Stash при каждом получении значения какой-либо переменной передаётся ссылка на массив — путь к этой переменной, что как минимум сразу делает невозможным «компилированный» доступ к переменным.
Так как обычный Stash — просто кошмар неиллюзорный, а Template Toolkit был (да и до сих пор) весьма популярен, в районе года 2000 появилась его XS-версия (то есть, переписанная на C) — {{CPAN|Template::Stash::XS}}. После этого TT-шаблонам, всё-таки, полегчало. Но, во-первых, Stash никогда не был единственным замедляющим работу TT уровнем, во-вторых, даже Stash::XS всё равно работает не так быстро, как мог бы, а в-третьих, Stash::XS долгое время имел различные баги — например, поддержка UTF-8 в {{CPAN|Template::Stash::XS}} появилась только 4 июля 2009 года.
== Ссылки ==
* [[VMX-Template]] — Описание собственного (моего) шаблонизатора.
* http://ctpp.havoc.ru/template_benchmarks.html - Сравнение производительности Perl-шаблонизаторов авторами CTPP. В тесте «всех порвал», разумеется, именно CTPP.
** {{CPAN|Template::Toolkit}}
** {{CPAN|HTML::Template}}
** {{CPAN|HTML::Template::Pro}}
** {{CPAN|HTML::Template::Compiled}}
** {{CPAN|HTML::Template::JIT}}
** {{CPAN|HTML::CTPP2}}
[[Категория:Разработка]]
Статья [[rupedia:Template_Toolkit|Template Toolkit]] в русскоязычной Википедии говорит нам о том, что по сути своей это «легковесная» библиотека, в отличие от «полновесных» фреймворков для построения веб-приложений.
== «Не используйте Template Toolkit!» ==
Или же очередная серия «[[Заметки об идиотизме|Заметок об идиотизме]]».
Главные минусы TT — его производительность, и, как это ни парадоксально — богатство возможностей, провоцирующее на создание сложных шаблонов и перенос в них половины логики приложения. В итоге идея о простых шаблонах, которые может редактировать даже дизайнер, накрывается медным тазом. Для примера достаточно взглянуть на шаблоны и код Bugzilla.
Производительность TT страдает в первую очередь от {{CPAN|Template::Stash}} (от англ. ''stash'' — тайник, «заначка») — зачем-то введённого отдельного уровня хранения данных — по сути, собственной реализации хеш-таблицы со множеством наворотов, проверок и вообще лишних действий, созданной, по всей видимости, для обеспечения нетривиальных возможностей вроде установки функции-getter’а вместо значение переменной шаблона (возможность, которой за весь опыт веб-разработки лично мне пользоваться не приходилось). В Stash при каждом получении значения какой-либо переменной передаётся ссылка на массив — путь к этой переменной, что как минимум сразу делает невозможным «компилированный» доступ к переменным.
Так как обычный Stash — просто кошмар неиллюзорный, а Template Toolkit был (да и до сих пор) весьма популярен, в районе года 2000 появилась его XS-версия (то есть, переписанная на C) — {{CPAN|Template::Stash::XS}}. После этого TT-шаблонам, всё-таки, полегчало. Но, во-первых, Stash никогда не был единственным замедляющим работу TT уровнем, во-вторых, даже Stash::XS всё равно работает не так быстро, как мог бы, а в-третьих, Stash::XS долгое время имел различные баги — например, поддержка UTF-8 в {{CPAN|Template::Stash::XS}} появилась только 4 июля 2009 года.
== Ссылки ==
* [[VMX-Template]] — Описание собственного (моего) шаблонизатора.
* http://ctpp.havoc.ru/template_benchmarks.html - Сравнение производительности Perl-шаблонизаторов авторами CTPP. В тесте «всех порвал», разумеется, именно CTPP.
** {{CPAN|Template::Toolkit}}
** {{CPAN|HTML::Template}}
** {{CPAN|HTML::Template::Pro}}
** {{CPAN|HTML::Template::Compiled}}
** {{CPAN|HTML::Template::JIT}}
** {{CPAN|HTML::CTPP2}}
[[Категория:Разработка]]