The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Twitter открыл код шаблонизатора Hogan.js

23.12.2011 18:06

Twitter открыл код нового шаблонизатора Hogan.js, написанного на языке JavaScript. Код открыт под лицензией Apache. В качестве языка для написания шаблонов поддерживается Mustache. Среди целей создания новой библиотеки для обработки шаблонов называется желание обеспечить высокую производительность в сочетании с возможностью манипулирования отдельными объектами шаблонов и предоставлением API для доступа к функциям парсера.

Шаблоны компилируется в готовые JavaScript-объекты HoganTemplate, для отображения которых в объектах предусмотрен специальный метод. Особенностью Hogan также является разделение фаз сканирования шаблонов, парсинга и генерации кода, что, например, позволяет добавлять новые возможности, такие как новые способы генерации кода, не трогая сканер и парсер. Сканирование и парсинг реализованы в виде отдельных методов, что позволяет предварительно обрабатывать шаблоны на сервере, а на стороне клиента использовать их в виде, скомпилированном в JavaScript.

  1. Главная ссылка к новости (http://twitter.github.com/hoga...)
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/32649-javascript
Ключевые слова: javascript, template, twitter, hogan
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (24) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, lucentcode (ok), 18:18, 23/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно. Работает шаблонизатор на node.js в асинхронном режиме? Подозреваю что у него производительность, которая PHP и Python может только сниться.
     
     
  • 2.7, Df232z (?), 19:32, 23/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Парсинг и популяция шаблонов это не то место где можно работать асинхронно. По крайней мере с видимым эффектом. А вот прекомпиляция это хорошо.

     
  • 2.8, Аноним (-), 20:34, 23/12/2011 [^] [^^] [^^^] [ответить]  
  • –3 +/
    А ты потестируй. С интересом обнаружишь как твой любимый нод.жс сливает питону на таких задачах. Хотя чего уж там, ведь он даже сливает там для чего изначально разрабатывался http://mrjoes.github.com/2011/12/15/sockjs-bench.html#comparison
    Кому вообще может в голову прийти мысль ещё и на сервер пихать такой язык как жаваскрипт, когда существуют более вменяемые альтернативы.
     
     
  • 3.10, Аноним (-), 00:05, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотя чего уж там, ведь он даже сливает
    > там для чего изначально разрабатывался http://mrjoes.github.com/2011/12/15/sockjs-bench.html#comparison

    По указанной вами ссылке на графике node.js на голову обгоняет cpython по числу одновременно обработанных запросов. Так что вы опозорились своими категоричными заявлениями :-)

     
     
  • 4.19, Df232z (?), 04:31, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Там еще дальше
    >With 2000 clients and reasonable rates, approximate memory usage was:

    sockjs-node around 36 MB
    sockjs-tornado on CPython around 52 MB
    sockjs-tornado on PyPy around 100 MB.

    выжрать в 2-3 раза больше памяти - классическое поведение питона.

     
  • 4.20, анон (?), 06:57, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Товарисч читать не умеет? Целью исследования было, кто больше всех отработает запросов с максимальным временем ответа 200msec

    sockjs-node starts to slow down around 45,000 messages.(>200msec)

    CPython starts to slow down around 55,000 messages per second.

    Woohoo, PyPy was able to keep mean response time under 200ms for rate of 150,000 outgoing messages per second. For concurrency level of 200, it was able to pump 195,000 messages in the same time frame.

     
     
  • 5.25, 1 (??), 12:44, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    просто в школе английский на уровне intermediate еще не преподают
     
  • 3.16, Df232z (?), 04:23, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Многие компании переходят на node.js. Особенно те которым нужно быстродействие и маштабируемость.
    По словам CTO voxer-а, http://voxer.com/  - полноценное voip решение с полумиллионом пользователей, переход с python на node.js дал им ускорение в 4-10 раз.
     
     
  • 4.22, Аноним (-), 07:45, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    > Многие компании переходят на node.js. Особенно те которым нужно быстродействие и маштабируемость.

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

     
     
  • 5.24, Df232z (?), 11:19, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Спасибо за совет.
    Пойду переписывать все вои сервисы с node на С.


     
     
  • 6.26, Аноним (-), 13:33, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Ну когда принимают такие решения, то у меня как-то сразу возникают сомнение о вменяемости людей, которые устроили переход с одной тормозной платформы на другую, которая так же отвратительно справляется с задачей, когда нужно обслуживать много voip потоков.
    Нужно просто сразу понимать что нод.жс тормозной, так же как и питон. А что самое ужасное - это наблюдать за тем как люди на этих тормозных платформах начинают с помощью хаков пытаться всё это ускорить, когда на Си можно было бы обойтись обычным чистым кодом, без всяких пулов/отключений гц и прочих подробностей платформы, и при этом всё работало бы значительно быстрее тех костылей, которые приходится наблюдать(особенно это заметно в java и .net мире).
     
     
  • 7.27, Df232z (?), 16:23, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А на ассемблере то можно?
    Что может быть лучше написания web сайта на С?
    Только написание его на ассемблере.
     
  • 3.17, Df232z (?), 04:24, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >  когда существуют более вменяемые альтернативы.

    Это вы намекаете на PHP?


     
     
  • 4.21, Аноним (-), 07:38, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >Это вы намекаете на PHP?

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

     
     
  • 5.23, Df232z (?), 11:18, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >руби

    Вы это серьезно?
    >питона

    Почему не следует использовать питон хорошо напискано тут: http://journal.paul.querna.org/articles/2011/12/18/the-switch-python-to-node-
    Это одна из крупнейших облачных компаний (Rackspace) переходит с питона на node.js.
    Если коротко - медленный, плохорасширяемый, со слабыми фреймворками.

     
  • 2.29, Аноним (-), 11:12, 27/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Интересно. Работает шаблонизатор на node.js в асинхронном режиме? Подозреваю что у него производительность, которая PHP и Python может только сниться.

    Вот бы потестировать с шаблонизаторами под mod_perl.

     

  • 1.3, Аноним (-), 18:49, 23/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то заоткрывался твиттер... Ну и хорошо)
     
  • 1.4, Df232z (?), 19:26, 23/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ну наконец то создатели шаблонов озаботились скоростью.
     
  • 1.5, Df232z (?), 19:29, 23/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >http://twitter.github.com/hogan.js/
    >npm install hogan

    Ошибочка у них на сайтике.
    Правильно
    npm install hogan.js

     
     
  • 2.6, Df232z (?), 19:31, 23/12/2011 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Но качать стоит с гитхабика, а то братик, невзначай, того ...
     

  • 1.9, Аноним (-), 00:01, 24/12/2011 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Я что-то не догоняю, для каких задач используется этот шаблонизатор? Если он да JavaScript, то работает явно не на серверной стороне web приложения (если нужна скорость, для этого есть CTPP). А если эта штука работает на стороне клиента, то такую страницу не сможет индексировать гугл (он ожидает HTML код, насколько я понимаю, а не JSON, который надо вставить в некий шаблон).

    Кто-нибудь может привести пример, когда имеет смысл использовать этот шаблонизатор? Для каких задач его создали?

     
     
  • 2.14, Df232z (?), 04:11, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Если он да JavaScript, то работает явно не на серверной стороне web приложения

    Node.js работает именно на серверной

     
  • 2.15, Df232z (?), 04:15, 24/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    >Если он да JavaScript, то работает явно не на серверной стороне web приложения

    Node.js работает именно на серверной стороне.
    > А если эта штука работает на стороне клиента, то такую страницу не сможет индексировать гугл

    То что страницу не может индексировать Google это хорошо или плохо? Вот у twitter - а все страницы такие, и что? Пока никто не умер.

     
  • 2.28, Crazy Alex (??), 14:46, 26/12/2011 [^] [^^] [^^^] [ответить]  
  • +/
    Классический пример - веб-приложения. В самом приложении индексировать особо и нечего, а вот для разработки шаблоны удобны.

    Ну а на серверной стороне шаблоны сто лет как применяются, начиная с PHP (который изначально языком шаблонов и был) и заканчивая темами/движками отображения в CMS. Разница только в том, что здесь шаблонизатор на JS.

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2022 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру