2012-04-17 7 views
34

Trabajo en una gran aplicación web basada en Java, ha sido desarrollada en los últimos 5 años o así - la interfaz de usuario necesita una revisión/se debe volver a escribir en gran medida. Estamos investigando las herramientas/bibliotecas/frameworks de UI disponibles para usar y hemos encontrado dust.js como una opción para la creación de plantillas.Elegir la herramienta de plantillas de interfaz de usuario correcta - dust.js?

Las preguntas: Estoy interesado en escuchar lo que los usuarios de dust.js pensar en ello:

  1. ¿Ha sido exitoso?
  2. ¿Es fácil de usar?
  3. ¿Está suficientemente documentado?
  4. ¿El apoyo de la comunidad es bueno? (sólo 6 preguntas sobre ST tagged 'dust.js'!)
  5. ¿Cuáles son las ventajas y desventajas en comparación con otras herramientas de plantillas como Underscore 's de plantillas, Google Closure Templates, Handlebars y Mustache.
  6. ¿Hay algún problema al usarlo con una estructura de estructura MV *, por ejemplo Backbone.js (online book)?

Algunos antecedentes:

  • ¿Por qué estamos interesados ​​en dust.js: Las siguientes entradas del blog LinkedIn dibujaron primero nuestra atención a ella:

    • Leaving JSPs in the dust: moving LinkedIn to dust.js client-side templates
    • The client-side templating throwdown: mustache, handlebars, dust.js, and more

      La segunda de las dos publicaciones responde muy bien la pregunta 5, pero aparte de LinkedIn, muy pocos resultados de Google detallan el sistema de plantillas o implican que es una opción popular. Además, la publicación menciona que han ampliado la funcionalidad y esperan contribuir algún día al proyecto original. Me preocupa que hasta que lo hagan, es posible que también necesitemos ampliar la funcionalidad.

      Habiendo dicho esto, los requisitos originales de LinkedIn para un sistema de plantillas son muy similares a los nuestros (ver más abajo) y claramente han hecho algunas investigaciones muy minuciosas antes de elegir.

  • Nuestros requisitos:

    1. DRY: Estamos idealmente desea utilizar el sistema de plantillas en el servidor (basado en Java) y del lado del cliente, o simplemente del lado del cliente si optamos por El enfoque completo de LinkedIn; Instead of using a JSP, GSP, or ERB to assemble a page server side and send back HTML, we have the server send back just the dynamic data as JSON and have the page assembled in the browser using a static client-side template served from a CDN"
    2. totalmente internacionalizada
    3. buen apoyo de la comunidad
    4. Suficiencia fácil de usar/recoger
    5. Obras felizmente con jQuery y Backbone.js
    6. bien documentado
+0

Esta es una pequeña página de prueba que encontré: http://linkedin.github.com/dustjs/test/test.html –

Respuesta

39

Dust.js es una buena opción Es mejor que algunos de los otros marcos de plantillas porque no restringe que los datos estén en un archivo, en una cadena, etc.

También se mantiene activamente https://github.com/linkedin/dustjs.

  1. ¿Ha sido exitoso?

    sí, lo sé, al menos, LinkedIn está utilizando y contribuyendo también mejoras/parches, etc.

  2. ¿Es fácil de usar?

    He intentado usarlo y es tan fácil como Moustache o Handlebars.js.

  3. ¿Está suficientemente documentado?

    http://akdubya.github.com/dustjs.

  4. ¿El apoyo de la comunidad es bueno? (solo 6 preguntas sobre ST con la etiqueta 'dust.js'!)

    Si está comparando Moustache o Handlebars.js, dust.js no tiene tantos usuarios, pero creo que si tiene un problema y lo publica en el repositorio de LinkedIn definitivamente responderían. Lo haré también, ya que lo estoy viendo :-)

  5. ¿Cuáles son los pros y los contras en comparación con otras herramientas de plantillas como plantilla de Underscore, plantillas de cierre de Google, manubrios y bigote.

    En cuanto a los profesionales, puede consultar cuándo debe considerar el uso de dust.js aquí https://github.com/linkedin/dustjs#readme.

    En cuanto a las contras, no hay suficientes usuarios de dust.js en comparación con los populares como Moustache o Handlebars.js. Dicho esto, las otras bibliotecas como Google Closure sufren el mismo problema.

    Pero como he mencionado antes, dust.js está diseñado muy bien en comparación con otros marcos en mi humilde opinión.

  6. ¿Hay algún problema al usarlo con una estructura de estructura MV *, por ejemplo, Backbone.js (libro en línea)?

    No lo he usado con otros frameworks MVC, pero no creo que deba ser un problema en absoluto.

Espero que ayude.

+0

Gracias, me había perdido esta página en mis búsquedas - https://github.com/ linkedin/dustjs –

+0

http://engineering.linkedin.com/frontend/client-side-templating-throwdown-mustache-handlebars-dustjs-and-more –

+0

Paypal también lo está utilizando para la representación de cliente y servidor. – ontk

6
  1. que estoy haciendo un proyecto independiente ya desde hace bastante una empresa de TI nicho grande y establecida y que he elegido dust.js de su marco de aplicaciones móviles HTML5. Y sí, LinkedIn es una gran y exitosa compañía.

  2. Tipo de. Nada realmente difícil, pero necesitaba acostumbrarme. Trabajé con Freemarker en Java: Freemarker parecía bastante más fácil de usar debido a la gran cantidad de funciones de potencia incorporadas. Sin embargo, muchos pueden encontrar que dust.js es agradable, tiene una lógica clara, una sintaxis muy ligera, hay cosas en dust.js que realmente les gustan a muchos.

  3. Freemarker para Java se documentó mucho mejor. La página GitHub de dust.js está muy bien para los principiantes, pero, por ejemplo, no pude encontrar la descripción de todos los filtros dust.js allí y necesité buscar en Google para ello, sin embargo, esa búsqueda me facilitó fácilmente la información que necesario.

  4. No vi mucho apoyo de la comunidad, pero la biblioteca es muy liviana y clara: un par de búsquedas en Google era todo lo que necesitaba para reunir toda la información necesaria.

  5. No usé otras herramientas de plantilla JS.

  6. La compañía que mencioné en la respuesta a la primera pregunta ha creado un marco HTML5 liviano usando dust.js junto con jQuery y Backbone.js. Estoy haciendo el proyecto para ellos usando ese marco y tocando la funcionalidad jQuery y Backbone.js todo el tiempo, nada de qué quejarse. dust.js es un poco como Backbone.js - liviano y no impone demasiadas restricciones en tu estilo de codificación u otras bibliotecas que uses. Utilizándolo verás que hay una forma de objetos JS preferible que usas para alimentarlo con los datos, pero es fácil acostumbrarte (es decir, si necesitas listas de algo en tus vistas, es mejor alimentar dust.js con listas y no hashes de objeto JS que al mismo tiempo son naturales al describir entidades separadas).

Una cosa sobre el rendimiento - puede desarrollar su aplicación con la versión "completa" y luego compilar sus plantillas para la producción (por ejemplo, usando Node.js + dust.js NPM módulo - ronco puede ser útil en este caso) a ser utilizado con la versión "core". En este caso, podría obtener un gran impulso en el rendimiento en el mundo real: al juntar todas las plantillas y minimizarlas, el navegador del cliente no obtendrá las plantillas del servidor cada vez que las necesite. "Completo" y "básico" no son comerciales/gratuitos: la versión central simplemente no tiene el compilador de plantillas y debe usarse con plantillas precompiladas.

Cuestiones relacionadas