Braise.js ou de la colonne vertébrale.js pour le backend Restful [fermé]

Je connais déjà cette braise.js est une approche plus lourde contrairement à backbone.js. J'ai lu beaucoup d'articles sur les deux.

Je me demande quel framework fonctionne plus facilement en tant que frontend pour un backend rails rest. Pour la colonne vertébrale.js j'ai vu différentes approches pour appeler un backend rest. Pour ember, il semble que je doive inclure d'autres bibliothèques comme 'data' ou 'resources'. Pourquoi il y a deux bibliothèques pour cela?

Alors quel est le meilleur choix? Il arent beaucoup d'exemples pour connecter le frontend avec le backend aussi. Quel est un bon exemple de travail pour un appel rest backend à ceci:

URI: ../restapi/sujets OBTENIR authentification: admin / secrect format: json

97
demandé sur Robin Wieruch 2012-10-21 13:57:12

3 réponses

Contrairement à L'opinion populaire Ember.js n'est pas une "approche plus lourde" à Backbone.js. Ce sont différents types d'outils qui ciblent des produits finaux totalement différents. Le sweet spot d'Ember est des applications où l'utilisateur gardera l'application ouverte pendant de longues périodes, peut-être toute la journée, et les interactions avec les vues de l'application ou les données sous-jacentes déclenchent des changements profonds dans la hiérarchie des vues. Ember est plus grand que Backbone, mais grâce à Expires, Cache-Control cela n'a d'importance que sur le le la première charge. Après deux jours d'utilisation quotidienne, 30K supplémentaires seront éclipsés par les transferts de données, plus tôt si votre contenu implique des images.

Backbone est idéal pour les applications avec un petit nombre d'états où la hiérarchie de vue reste relativement plate et où l'Utilisateur a tendance à accéder à l'application rarement ou pour des périodes plus courtes. Le code de Backbone reste court et doux car il suppose que les données sauvegardant le DOM seront jetées et que les deux éléments le seront être mémoire collectée: https://github.com/documentcloud/backbone/issues/231#issuecomment-4452400 la taille plus petite de Backbone le rend également mieux adapté aux interactions brèves.

Les applications que les gens écrivent dans les deux frameworks reflètent ces utilisations: Ember.les applications js incluent le tableau de bord Web de Square, Zendesk (au moins l'interface agent / billetterie), et le planificateur de Groupon : toutes les applications dans lesquelles un utilisateur peut passer toute la journée à travailler.

Les applications Backbone se concentrent plus sur les interactions brèves ou occasionnelles, qui ne sont souvent que de petites sections d'une page statique plus grande: airbnb, Khan Academy, la carte et les listes de Foursquare .

Vous pouvez utiliser Backbone pour créer les types d'applications que Ember cible (par exemple Rdio ) par un) augmenter la quantité de code d'application dont vous êtes responsable pour éviter les problèmes tels que les fuites de mémoire ou les événements Zombies (Je ne recommande pas Personnellement cette approche) ou b) en ajoutant 3rd party bibliothèques comme backbone.marionette ou Coccyx - Il y a beaucoup de ces bibliothèques qui essaient toutes de fournir des fonctionnalités de chevauchement similaires et vous finirez probablement par assembler votre propre framework personnalisé qui est plus grand et nécessite plus de code de colle que si vous veniez d'utiliser Ember.

En fin de compte, la question de "lequel utiliser" a deux réponses.

Tout D'abord, "Que devrais-je utiliser, généralement, dans ma carrière": les deux, tout comme vous finirez par apprendre tous les outils spécifiques à travail que vous aurez envie de faire à l'avenir. Vous ne demanderiez jamais " Backbone ou D3?"; "Épine dorsale ou braise" est une question tout aussi stupide.

Deuxièmement, "que dois-je utiliser, spécifiquement, sur mon prochain projet": dépend du projet. Les deux communiqueront avec un serveur Rails avec la même facilité. Si votre prochain projet implique un mélange de pages générées par le serveur avec des "îlots de richesse" fournis par JavaScript, utilisez Backbone. Si votre prochain projet pousse toute l'interaction dans le navigateur environnement, utiliser braise.

258
répondu Trek Glowacki 2012-10-23 10:43:42

Pour donner une réponse brève et simplifiée: pour un backend RESTful, pour le moment, vous devriez utiliser Backbone.

Pour donner une réponse plus complexe: cela dépend vraiment de ce que vous faites. Comme d'autres l'ont dit, Ember est conçu pour différentes choses, et fera appel à un ensemble différent de personnes. Ma réponse courte est basée sur votre inclusion de l'exigence RESTful.

Pour le moment, Ember-Data (qui semble être le mécanisme de persistance par défaut dans Ember) est loin d'être produit prêt. Ce que cela signifie, c'est qu'il a pas mal de bugs et, surtout, ne supporte pas les URI imbriqués (/posts/2/comments/4556 par exemple). Si REST est votre exigence, alors vous devrez contourner cela pour le moment si vous choisissez Ember (c'est-à-dire que vous devrez soit le pirater, attendre, implémenter quelque chose comme Ember-Data à partir de zéro vous-même, ou utiliser des URI pas très RESTful). Ember-Data ne fait pas strictement partie D'Ember, c'est donc tout à fait possible.

Les principales différences entre les deux, mis à part la taille, sont fondamentalement:

Ember essaie de faire autant que possible pour vous, de sorte que vous n'ayez pas à écrire autant de code. Il est très hiérarchisée et, si votre application est également très hiérarchique, sera probablement un bon ajustement. Parce qu'il fait tellement pour vous, il peut être difficile de comprendre d'où viennent les bugs et de raisonner pourquoi un comportement inattendu se produit (il y a beaucoup de "magie"). Si vous avez une application qui s'intègre naturellement dans le type d'application Qu'Ember attend de vous construire cependant, cela ne sera probablement pas un problème.

Backbone essaie de faire le moins possible pour vous afin que vous puissiez raisonner sur ce qui se passe et construire une architecture qui correspond à votre application (plutôt que de construire une application qui correspond à l'architecture du framework que vous utilisez). Il est beaucoup plus facile pour commencer avec, mais si vous êtes prudent, vous pouvez vous retrouver avec un désordre très rapidement. Il ne fait pas des choses comme les propriétés calculées, les événements de désindrement automatique, etc. et les laisse à vous, donc, vous devrez implémenter beaucoup de choses vous-même (ou au moins choisir des bibliothèques qui le font pour vous), bien que ce soit plutôt le point entier.

Update : Il semble que, depuis peu, Ember supporte maintenant les URI imbriqués, donc je suppose que la question se résume à combien de magie vous aimez et si Ember est un bon ajustement, architecturalement, pour votre application.

26
répondu bengillies 2012-10-22 22:17:05

Je pense que votre question sera bientôt bloquée :) il y a quelques disputes entre les deux frameworks.

Fondamentalement Backbone ne fait pas beaucoup de choses, et c'est pourquoi je l'aime : vous devrez coder beaucoup, mais vous coder au bon endroit. Ember fait beaucoup de choses, alors vous feriez mieux de regarder ce qu'il fait.

La discussion sur le serveur est l'une des rares choses que Backbone fait, et elle fait un excellent travail avec elle. Donc, je commencerais par Backbone et ensuite essayer de Braise si vous n'êtes pas totalement satisfait.

Vous pouvez également écouter ce podcast où Jeremy Ashkenas, créateur de Backbone, et Yehuda Katz, membre D'Ember, ont une belle discussion

3
répondu Nicolas Zozol 2014-04-08 10:16:59