Тема: Snakeskin
Показать сообщение отдельно
  #34 (permalink)  
Старый 26.06.2013, 19:54
Аватар для kobezzza
Быдлокодер;)
Отправить личное сообщение для kobezzza Посмотреть профиль Найти все сообщения от kobezzza
 
Регистрация: 19.11.2010
Сообщений: 4,338

Сообщение от nerv_ Посмотреть сообщение
кстати, что насчет производительности? http://jsperf.com/javascript-templat...off-extended/2
Я честно не вижу смысла сравнивать скорость трансляции. Я знаю как ускорить трансляцию раза в полтора у себя, но это ухудшит читабельность кода, а смысла в этом особо нет.

Скорее всего всякие микро-темплейтинги делают трансляцию быстрее, т.к. весь их алгоритм - это сплит по разделителю и new Function.

У меня в проекте ~300 шаблонов и их трансляция это примерно 5-10% от общей сборки проекта и на моей машинке делается где то 0.7 секунд, а для сравнения Google Closure Templates делает это секунд за 20 (хз, почему так долго, особенно учитывая, что он написан на яве).

Но это всё лирическое отступление

Если у тебя 10-ок шаблонов и ты компилишь их на клиенте, то это в любом случае сделается очень быстро даже в ИЕ6 и даже на телефоне А если у тебя целая куча шаблонов и ты компилишь их не на сборке проекта, то стоит задуматься, а всё ли ты делаешь правильно

Да и вообще прекомпиляция это даже удобнее:
1) Скомпиленые шаблоны можно пропустить через минификатор вместе с остальным JS и это лишит головной боли с экспортом свойств, если сжатие идёт например через GCC.
2) Скомпилиный шаблон работает "мгновенно", т.к. его не нужно предварительно парсить и т.д.
3) Шаблоны можно и нужно разбивать на разные файлы, а не лепить всё в кучу, и тут всё оч просто с таким подходом.
4) В JS я просто вызываю функцию, а не думаю: "ой, это шаблон, его нужно скомпилить"
5) Не нужно тащить транслятор на клиент: а в моём случае это почти 3к строк.

В общем Snakeskin задумывался как шаблонизатор с прекомпиляцией, но а поддержка live-исполнения сделана исключительно для отладки
Оптимизация ради оптимизации - это пустая трата времени.
__________________
kobezzza
code monkey

Последний раз редактировалось kobezzza, 26.06.2013 в 20:31.
Ответить с цитированием