javascript - Elegir la herramienta de plantillas de interfaz de usuario correcta-dust.js?
templates backbone.js (2)
Ahora estoy haciendo un proyecto independiente para una empresa de TI bastante grande y establecida, y han elegido dust.js para su marco de aplicaciones móviles HTML5. Y sí, LinkedIn es una gran y exitosa compañía.
Más o menos 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.
Freemarker para Java fue documentado 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.
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.
No usó otras herramientas de plantillas JS.
La compañía que mencioné en la respuesta a la primera pregunta ha construido 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: puedes desarrollar tu aplicación con la versión "completa" y luego compilar tus plantillas para producción (usando por ejemplo el módulo node.js + dust.js npm - el ronco puede ser útil aquí) para usar 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.
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 general o se 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 dust.js de plantillas.
Las preguntas: me interesa saber qué piensan los usuarios de dust.js sobre esto:
- ¿Ha sido exitoso?
- ¿Es fácil de usar?
- ¿Está suficientemente documentado?
- ¿El apoyo de la comunidad es bueno? (¡Solo 6 preguntas sobre ST etiquetadas ''dust.js'' !)
- ¿Cuáles son los pros y los contras en comparación con otras herramientas de plantillas como plantillas de Underscore , Google Closure Templates , Handlebars y Mustache ?
- ¿Hay algún problema al usarlo con un framework de estructura MV *, por ejemplo, Backbone.js ( libro en línea )?
Algunos antecedentes:
¿Por qué estamos interesados en dust.js: las siguientes publicaciones de blog de LinkedIn primero llamaron nuestra atención sobre esto:
- Dejando JSPs en el polvo: moviendo LinkedIn a las plantillas del lado del cliente de dust.js
El cambio de plantillas de cliente: bigote, manubrios, dust.js y más
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.
Una vez 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 realizado algunas investigaciones muy exhaustivas antes de elegir.
Nuestras necesidades:
- DRY : lo ideal es usar el sistema de plantillas en el servidor (basado en Java) y en el lado del cliente, o solo en el 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"
- Totalmente internacionalizado
- Buen apoyo de la comunidad
- Suficiencia fácil de usar / recoger
- Funciona felizmente con jQuery y Backbone.js
- Bien documentada
- DRY : lo ideal es usar el sistema de plantillas en el servidor (basado en Java) y en el lado del cliente, o solo en el lado del cliente si optamos por el enfoque completo de LinkedIn;
Dust.js es una buena opción. Es mejor que algunos de los otros frameworks 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 .
¿Ha sido exitoso?
Sí, sé que al menos LinkedIn lo está usando y también aporta mejoras / parches, etc.
¿Es fácil de usar?
He intentado usarlo y es tan fácil como Moustache o Handlebars.js.
¿Está suficientemente documentado?
¿El apoyo de la comunidad es bueno? (¡Solo 6 preguntas sobre ST etiquetadas ''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ía. Lo haré también, ya que lo estoy viendo :-)
¿Cuáles son los pros y los contras en comparación con otras herramientas de plantillas como plantillas de Underscore, plantillas de cierre de Google, manubrios y bigote?
En cuanto a los profesionales, puede verificar cuándo debería considerar el uso de dust.js aquí https://github.com/linkedin/dustjs#readme .
En cuanto a los inconvenientes, no hay suficientes usuarios para dust.js en comparación con los populares como Mustache 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.
¿Hay algún problema al usarlo con un framework de estructura MV *, por ejemplo, Backbone.js (libro en línea)?
No lo he usado con otros frameworks MVC, pero no creo que sea un problema en absoluto.
Espero que ayude.