13 787
правок
Изменения
Нет описания правки
{{CPAN|Template::Toolkit}} (а также TTk или просто TT) — шаблонизатор, Perl-библиотека для отделения уровня представления от уровня приложения. Короче говоря, относительно простой язык программирования, упрощающий генерацию динамических страниц, в основном, хотя и не обязательно — [[rupedia:HTML|HTML]]-страниц.
Статья [[rupedia:Template_Toolkit|Template Toolkit]] в русскоязычной Википедии говорит пытается намекнуть нам о томна то, что по сути своей это TT — «легковесная» библиотека, в отличие от «полновесных» фреймворков для построения веб-приложений.
== «Не используйте Template Toolkit!» ==
Или же очередная серия «[[:Категория:Заметки об идиотизме|Заметок об идиотизме]]».
=== Пример: Bugzilla ===
Но есть и беда: Bugzilla всё ещё использует Template Toolkit, а разрабатывается длительное время и большим числом людей разной степени вшивости :) в итоге люди начинают использовать ''ну, прямо-таки все'' возможности Template Toolkit’а, что ведёт к уже упомянутому анти-паттерну разработки: перемещению 50 % логики в шаблоны.
==== …И её тормоза ====
Практически это приводит к следующим эффектам. Например, открытие бага с большим числом комментариев (например, с 703-емя — это наш максимум в [http://www.custis.ru/ ЗИС]'е) в Bugzilla 2.x, даже с учётом того, что это CGI-скрипт (то есть перезапускается интерпретатор), занимает примерно 1.5 секунды, а в 3.x, даже с учётом того, что это mod_perl (то есть интерпретатор не перезапускается и модули тоже не перезагружаются — ''хочется быстрее, да?'')… примерно 22 секунды, из которых 6 тратятся на работу {{CPAN|Template::Stash}}. После некоторых манипуляций средней хитрости время с 22 сек было доведено до 5.5 секунд, но это всё равно уже никак не 1.5 секунды 2-ой багзиллы, а для дальнейшего прогресса «локальных» улучшений уже мало — нужно глобально менять, так сказать, «архитектурные элементы». Та же история, хоть и менее катастрофическая, с поиском багов — было полсекунды, стало полторы. Некритично, конечно, но где же оно, заявленное «this greatly improves performance and highly decreases the memory footprint»?..