web-dev-qa-db-fra.com

Choisir le bon outil de modélisation d'interface utilisateur - dust.js?

Je travaille sur une grande application Web basée sur Java Java, elle a été développée au cours des 5 dernières années environ - l'interface utilisateur a besoin d'une refonte/pour être largement réécrite. Nous étudions les Outils/bibliothèques/frameworks d'interface utilisateur à utiliser et rencontrés dust.js comme option de création de modèles.

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

  1. At-il réussi?
  2. Est-il facile à utiliser?
  3. Est-il suffisamment documenté?
  4. Le soutien communautaire est-il bon? (seulement 6 questions sur ST tagué 'dust.js' !)
  5. Quels sont les avantages et les inconvénients par rapport à d'autres outils de création de modèles tels que nderscore 's templating, Google Closure Templates , Handlebars and Moustache .
  6. Y a-t-il des problèmes à l'utiliser avec un cadre de structure MV *, par exemple Backbone.js ( livre en ligne )?

Quelques antécédents:

  • Pourquoi sommes-nous intéressés par dust.js: Les articles de blog LinkedIn suivants ont d'abord attiré notre attention:

  • Nos exigences:

    1. SEC : Nous souhaitons idéalement utiliser le système de modèles sur le serveur (basé sur Java) et côté client, ou simplement côté client si nous optons pour LinkedIn complet 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 communautaire
    4. Suffisance facile à utiliser/à ramasser
    5. Fonctionne parfaitement avec jQuery et Backbone.js
    6. Bien documenté
36
Ed .

Dust.js est une bonne option. C'est mieux que certains des autres frameworks de modèles car cela ne contraint pas que les données doivent être dans un fichier, ou dans une chaîne, etc.

En outre, il est activement maintenu https://github.com/linkedin/dustjs .

  1. At-il réussi?

    Oui, je sais qu'au moins LinkedIn l'utilise et apporte également des améliorations/correctifs, etc.

  2. Est-il facile à utiliser?

    J'ai essayé de l'utiliser et c'est aussi simple que Moustache ou Handlebars.js.

  3. Est-il suffisamment documenté?

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

  4. Le soutien communautaire est-il bon? (seulement 6 questions sur ST "dust.js"!)

    Si vous comparez Moustache ou Handlebars.js, dust.js n'a pas autant d'utilisateurs, mais je pense que si vous avez un problème et le postez sur le repo LinkedIn, ils répondraient certainement. Je le ferai aussi puisque je le regarde :-)

  5. Quels sont les avantages et les inconvénients par rapport à d'autres outils de création de modèles tels que les modèles d'Underscore, les modèles de fermeture Google, les guidons et la moustache.

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

    Quant aux inconvénients, il n'y a pas assez d'utilisateurs pour dust.js par rapport aux utilisateurs populaires comme Moustache ou Handlebars.js. Cela dit, les autres bibliothèques comme Google Closure souffrent du même problème.

    Mais comme je l'ai mentionné précédemment, dust.js est très bien conçu par rapport aux autres cadres à mon humble avis.

  6. Y a-t-il des problèmes à l'utiliser avec une structure de structure MV *, par exemple Backbone.js (livre en ligne)?

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

J'espère que cela pourra aider.

41
g13n
  1. Je fais maintenant un projet indépendant pour une entreprise informatique de niche assez grande et établie et ils ont choisi dust.js pour leur cadre d'application mobile HTML5. Et oui, LinkedIn est une grande entreprise prospère.

  2. Sorte de. Rien de vraiment difficile mais j'avais besoin de m'y habituer. J'ai travaillé avec Freemarker sur Java - Freemarker semblait un peu plus facile à utiliser en raison de nombreuses fonctionnalités intégrées. Cependant, beaucoup peuvent trouver dust.js Nice - il a sa logique claire , syntaxe très légère - il y a des choses dans dust.js qui plaisent vraiment à beaucoup.

  3. Freemarker pour Java a été documenté beaucoup mieux. La page GitHub de dust.js est très bien pour les débutants mais, par exemple, je n'ai pas pu trouver la description de tous les filtres dust.js là-bas et je devais recherchez-le sur Google - cependant, cette recherche m'a facilement fourni les informations dont j'avais besoin.

  4. Je n'ai pas vu beaucoup de soutien de la communauté, mais la bibliothèque est vraiment légère et claire - quelques recherches sur Google étaient tout ce dont j'avais besoin pour rassembler toutes les informations nécessaires.

  5. N'a pas utilisé d'autres outils de création de modèles JS.

  6. La société que j'ai mentionnée dans la réponse à la 1ère question a construit un framework HTML5 léger utilisant dust.js avec jQuery et Backbone.js. Je fais le projet pour eux en utilisant ce cadre et en appuyant sur les fonctionnalités jQuery et Backbone.js tout le temps - rien à redire. dust.js est un peu similaire à Backbone.js - léger et n'imposant pas beaucoup de restrictions à votre style de codage ou aux autres bibliothèques que vous utilisez. En l'utilisant, vous verrez qu'il existe une forme préférable d'objets JS que vous utilisez pour l'alimenter avec les données, mais il est facile de s'y habituer (je veux dire si vous avez besoin de listes de quelque chose dans vos vues, il vaut mieux nourrir dust.js avec des listes et non les hachages d'objets JS qui sont en même temps naturels pour décrire des entités distinctes).

Une chose au sujet des performances - vous pouvez développer votre application avec une version "complète" puis compiler vos modèles pour la production (en utilisant par exemple le module npm node.js + dust.js - grunt peut être utile ici) à utiliser avec la version "core" . Dans ce cas, les performances réelles pourraient être considérablement améliorées - le fait de rassembler tous les modèles et de les réduire permettra au navigateur client de ne pas récupérer les modèles du serveur chaque fois qu'il en a besoin. "Full" et "core" ne sont pas commerciaux/gratuits - la version de base n'a tout simplement pas le compilateur de modèles et doit être utilisée avec des modèles précompilés.

7
Anton Mochalin