35 votes

Choisir le bon outil de gabarit d'interface utilisateur - dust.js?

Je travaille sur une grande Java de l'application web, il a été construit au cours des 5 dernières années - l'INTERFACE utilisateur a besoin d'une révision / être en grande partie ré-écrit. Nous étudions la disposition de l'INTERFACE utilisateur des outils/bibliothèques/cadres à utiliser et viennent à travers dust.js comme une option pour la création de modèles.

Les questions: Je suis intéressé à entendre ce que les utilisateurs de dust.js pensez-y:

  1. A-il été un succès?
  2. Est-il facile à utiliser?
  3. Est-il documenté?
  4. C'est la collectivité à soutenir les bonnes? (seulement 6 questions sur ST tagged 'dust.js'!)
  5. Quels sont les avantages et les inconvénients par rapport à d'autres outils de création de modèles comme le Soulignents'templating, Google Fermeture de Modèles, Guidon et de la Moustache.
  6. Existe-il des problèmes pour l'utiliser avec un MV* structure de cadre, de l'e.g Backbone.js (livre en ligne)?

Un peu de contexte:

  • Pourquoi sommes-nous intéressés par dust.js: La suite de LinkedIn blogue a d'abord attiré notre attention:

  • Nos exigences:

    1. SEC: Nous sommes idéalement souhaitez utiliser le système de template sur le serveur (Java) et côté client, ou juste à côté client si nous optons pour LinkedIn complète de l'approche; 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. Entièrement internationalisé
    3. Bon soutien de la communauté
    4. La suffisance facile à utiliser / pick up
    5. Œuvres heureux avec jQuery et Backbone.js
    6. Bien documenté

40voto

g13n Points 1520

Dust.js est une bonne option. Il est mieux que certains des autres gabarits des cadres, parce que ce ne soit pas un obstacle à ce que les données doivent être dans un fichier, ou dans une chaîne de caractères, etc.

Il est également activement maintenu https://github.com/linkedin/dustjs.

  1. A-il été un succès?

    Oui, je sais au moins que LinkedIn est de l'utiliser et aussi contribuant à l'amélioration/patches, etc.

  2. Est-il facile à utiliser?

    J'ai essayé de l'utiliser et il est aussi facile que la Moustache ou la Handlebars.js.

  3. Est-il documenté?

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

  4. C'est la collectivité à soutenir les bonnes? (seulement 6 questions sur ST tagged 'dust.js'!)

    Si vous comparez la Moustache ou la Handlebars.js, dust.js ne pas avoir autant d'utilisateurs, mais je crois que si vous avez un problème et de le poster sur LinkedIn pensions qu'ils seraient certainement répondre. Moi aussi depuis que je suis de regarder :-)

  5. Quels sont les avantages et les inconvénients par rapport à d'autres outils de création de modèles tels que le trait de Soulignement de templating, Google Fermeture de Modèles, le Guidon et la Moustache.

    Comme pour les pros, vous pouvez vérifier quand vous devriez envisager d'utiliser dust.js ici https://github.com/linkedin/dustjs#readme.

    Comme pour les cons, il n'y a pas assez d'utilisateurs pour dust.js comparé à d'populaires tels que la Moustache ou la Handlebars.js. Cela dit, les autres bibliothèques comme Google Fermeture souffre du même problème.

    Mais comme je l'ai mentionné avant, dust.js est très bien conçu comparé à d'autres cadres à mon humble avis.

  6. Existe-il des problèmes pour l'utiliser avec un MV* structure de cadre, de l'e.g Backbone.js (livre en ligne)?

    Je n'ai pas utilisé avec d'autres frameworks MVC, mais je ne pense pas que cela devrait être un problème du tout.

Espérons que cela aide.

6voto

Anton Mochalin Points 141
  1. Je suis en train de faire un projet freelance maintenant pour un grand et établi niche, C'société, et ils ont choisi dust.js pour leur HTML5 mobile app framework. Et oui, LinkedIn est un grand succès de l'entreprise.

  2. En quelque sorte. Rien de vraiment difficile, mais j'avais besoin de m'habituer à elle. J'ai travaillé avec Freemarker sur Java - Freemarker semblait tout à fait un peu plus facile à utiliser en raison de beaucoup de caractéristiques de l'alimentation. Cependant, beaucoup peuvent trouver dust.js nice - elle a sa logique claire, très léger syntaxe - il y a des choses dans dust.js pour vraiment comme pour de nombreux.

  3. Freemarker pour Java a été documenté beaucoup mieux. dust.js's GitHub page est très OK pour commencer mais, par exemple, je ne pouvais pas trouver la description de tous les dust.js les filtres de là et nécessaires à la recherche sur Google pour elle - cependant, cette recherche facilement m'a fourni les infos dont j'avais besoin.

  4. N'a pas vu beaucoup de soutien de la communauté, mais la bibliothèque est vraiment léger et clair - un couple de recherches de Google est tout ce que je nécessaire à la collecte de toutes les informations nécessaires.

  5. Ne pas utiliser d'autres JS outils de création de modèles.

  6. L'entreprise que j'ai mentionné dans la réponse à la 1ère question a construit un léger HTML5 cadre à l'aide d'dust.js avec jQuery et Backbone.js. Je suis en train de faire le projet à l'aide de ce cadre et de s'appuyer, à la fois jQuery et Backbone.js la fonctionnalité de tous les temps rien à redire. dust.js c'est un peu comme Backbone.js - léger et de ne pas imposer beaucoup de restrictions sur votre style de codage ou d'autres bibliothèques que vous utilisez. En l'utilisant, vous verrez qu'il est préférable forme d'objets JS vous utilisez de l'alimenter avec les données, mais il est facile de s'y habituer (je veux dire, si vous avez besoin des listes de quelque chose dans votre point de vue, il est préférable de nourrir dust.js avec des listes et de ne pas JS objet de hachages qui en même temps sont naturels à décrire des entités distinctes).

Une chose à propos de la performance, vous pouvez développer votre application avec la version "complète" et puis compilez vos modèles pour la production (en utilisant par exemple node.js + dust.js npm module - grunt peut être utile ici) pour être utilisé avec le "noyau" de la version. Dans ce cas, vous pourriez obtenir un bon coup de pouce dans le monde réel de la performance - mettre tous les modèles et les minifying volonté libre le navigateur client de récupérer les modèles de serveur à chaque fois qu'il a besoin d'eux. "Plein" et "de base" ne sont pas commerciales/gratuit - la version de base n'a tout simplement pas le modèle du compilateur et de l'est à être utilisé avec la pré-compilé modèles.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by: