30 votes

Angular.js Backbone.js et autres bibliothèques js à motifs MV *?

Je suis tout à fait débutant à l'application web, et plus spécifiquement à ce MV*modèle. Nous faisons une application web et de nous la pensée de départ de jQuery, pas complètement, mais nous essayons de mettre en œuvre un langage côté client avec MVC, MVVM, ou MVP de soutien. Fondamentalement, quelque chose qui sépare les points de vue du modèle. Étant nouveau sur ce MV* modèle que je suis tombé sur ce site.

Il fondamentalement liste (ou presque!) tous les clients côté de la langue/cadre à l'appui de cette MV* modèle, et après la visite, je suis vraiment confus. Parce que d'après ce site..

À la fin de la journée, Ember.js est le seul cadre qui a tout ce que je désir. J'ai récemment porté à un relativement petit Backbone.js application à Ember.js et, en dépit de quelques petites performances des questions, je suis beaucoup plus heureux avec le code résultant de base. Être il est défendu par Yehuda Katz, la communauté autour de Ember.js est également incroyable. C'est certainement le cadre de regarder dehors pour.

Mais DONC, j'ai trouvé cela, et ça me fait penser que angulaire est beaucoup mieux, tandis que, de nouveau, le présent, et ce qui me fait penser que c'est peut être l'épine dorsale de ce que je suis à la recherche d'.

Pour les empirer, les tests montrent résultat tout à fait différent. Ici

http://jsfiddle.net/HusVw/1/ Backbone clear winner

http://jsfiddle.net/ericf/NrpcQ/ Backbone winner again

http://jsperf.com/angular-vs-knockout-vs-extjs-vs-backbone/2 angular winner for less data for more its knockout

http://jsperf.com/knockout-js-vs-direct-dom-manipulation/3 Backbone again

http://jsperf.com/angular-vs-knockout-vs-ember/33 no way its ember as the site mentioned

Donc, en gros, tout cela est totalement déroutant moi, je ne peux pas décider de ce web nom je doit apprendre, et que dois-je mettre en œuvre sur le site. Comme dans les tests d' Backbone ressort clairement, mais j'ai beaucoup entendu parler de knockout, mais le liens que j'ai mentionné dire à propos de angular? Je sais que ça peut être dépend de l'application que je suis en train d'élaborer, mais je veux un point de vue plus large, ce qui serait utile non seulement pour ce projet, mais pour un plus long terme? Dans ce cas, vous préférez quel cadre? Ou Devrais-je apprendre d'eux tous?(jk, ne peuvent vraiment pas faire que dans un plausible temps.)

Pour rendre les choses plus f** jusqu', j'ai entendu parler de dart, et wiki dit..

L'objectif de Dart est "en fin de compte, afin de remplacer JavaScript en tant que lingua franca de développement web sur la plateforme open web."

Donc, si le js est va être remplacé, pourquoi le hack, je suis même en tenant compte de l'apprentissage de ces bibliothèques js/cadre(s)?

Donc, en gros, tout est foiré et je suis totalement confus? Quelqu'un peut-il svp m'aider à me décider?

26voto

Martin S. Points 500

Il n'y a probablement pas de réponse objective, mais ici, c'est mes 2 cents:

Épine dorsale conduit généralement à de beaucoup plus grandes bases de code qui sont plus difficiles à conserver. Semblable à l'anecdote dans vos liens, j'ai travaillé sur un projet où le code a diminué, passant de 2500 lignes avec épine Dorsale de 600 lignes Angulaire. Knock-out aurait probablement donné tout aussi petit (=bon) résultats. Mes collègues l'ont éloigné de la colonne vertébrale, à knock-out et ont été beaucoup plus heureux par la suite.

L'avantage de l'épine Dorsale, c'est qu'il est vraiment léger et vous donne plus d'options pour la structure des choses. Cela signifie également que vous pouvez faire plus de réglage des performances, de sorte qu'il peut être plus rapide. Ces mêmes aspects sont aussi son inconvénient: Vous avez besoin de structurer les choses vous-même ce qui signifie: plus de code, plus complexes et potentiellement plus de bugs.

D'après les tests que vous mentionnez: Ils ne sont pas très objectif, car ils mettent l'accent sur un point très particulier de cas d'utilisation. Aussi, ils ont été publiés par l'auteur de l'épine Dorsale de lui-même, alors, évidemment, ils montrent colonne vertébrale dans une bonne lumière. Pour la normale de l'Isu, la performance ne devrait pas être un problème, n'importe laquelle des 3 (Backbone, Angular, knock-out) de votre choix. Une mise en garde Angulaire: Si vous souhaitez afficher dynamiquement plus de 2000 éléments sur votre page, il pourrait être problématique (voir la réponse Angulaire du créateur lui-même ici: liaison de données dans angularjs).

Sur Dart: Son but est d'être une langue, pas seulement un MV* cadre intérieur d'une langue. C'est un de complètement différent de la bête et si vous avez simplement besoin d'un MV* cadre de, Dart serait exagéré. Aussi, Dart est encore très jeune et n'est pas pris en charge nativement dans la plupart des navigateurs.

3voto

alexandernst Points 2282

Eh bien, tout d'abord, il n'y a vraiment pas de "bonne" réponse à cette question. Tous MVC bibliothèques sont bonnes si vous demandez à leurs créateurs :p Cela dit, je vous recommande de commencer à lire les exemples de la TODO-MVC donc vous pouvez voir comment beaucoup de code est nécessaire pour une simple application web, et quelle est la complexité. Ensuite, décidez vous-même ce que vous êtes prêt à aller avec. Ma recommandation personnelle est de la Dorsale. Aussi, il ya certains des bibliothèques complémentaires qui font (presque) magique des choses, comme l' épine Dorsale Imbriquées par exemple.

Bonne chance!

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:

X