Découvrez Backbone.js 0.5.0 pour organiser votre code JavaScript

Posté par  (site web personnel) . Modéré par tuiu pol. Licence CC By‑SA.
34
3
juil.
2011
JavaScript

Backbone.js est un framework JavaScript sous licence MIT que Jeremy Ashkenas a écrit dans le cadre de son travail chez DocumentCloud. Il permet d’apporter de la structure à des applications JavaScript grâce à une bibliothèque qui ne fait pourtant qu’un millier de lignes de code en tout.

Pour cela, il apporte la séparation du code en classes :

  • les modèles et collections sont responsables de la logique métier et peuvent également servir pour la persistance, aussi bien locale avec localStorage que distante via des API RESTful en JSON. Les modèles proposent des enregistrements clé‐valeur et des événements associés. Les collections offrent un catalogue bien pratique de méthodes d’énumération : ce sont les méthodes map, reduce, filter importées depuis underscore.js, une des rares dépendances de Backbone.js ;
  • les vues font la liaison entre les modèles et le DOM. Elles mettent à jour le code HTML en fonction des modifications des modèles et, dans l’autre sens, peuvent gérer les événements du DOM ;
  • le routeur permet de modifier l’URL de la page (le #fragment ou, depuis la version 0.5.0, le chemin complet grâce à pushState) et de retourner à l’état associé quand la page est rechargée. Cela permet d’avoir des URL qui peuvent être mises en favoris ou partagées.

Backbone.js a atteint la version 0.5.0 il y a quelques jours et est déjà utilisé sur des projets notables comme Basecamp Mobile.

Aller plus loin

  • # À comparer avec Sammy.js ?

    Posté par  (site web personnel) . Évalué à 4.

    Dernièrement j'ai utilisé avec plaisir la partie routeur de Sammy.js (http://sammyjs.org/). Je vais peut être tester prochainement Backbone.js.
    Est-ce qu'il y a des personnes qui ont comparées la partie routeur de Sammy.js avec celle de Backbone.js ?

  • # Seulement 1000 lignes de code

    Posté par  . Évalué à 4.

    "seulement" ?
    Le web a bien changé.

    BeOS le faisait il y a 20 ans !

    • [^] # Re: Seulement 1000 lignes de code

      Posté par  (site web personnel) . Évalué à 7.

      oui, ça a bien changé...

      Quel est la taille d'une "application" web aujourd'hui (si on ne compte que le js, pas les serveurs) ? 10 000 loc ? 20 000 ? (la dernière grosse sur laquelle je code fait dans les 60 000 loc hors libs).

      Donc je suis plutôt d'accord avec le seulement 1000 lignes.

    • [^] # Re: Seulement 1000 lignes de code

      Posté par  (site web personnel) . Évalué à 6. Dernière modification le 04 juillet 2011 à 12:58.

      En comparaison, jquery, c'est plutôt dans les 10 000 lignes de code. Et je ne parle même de frameworks plus lourds comme YUI ou ExtJS.

      • [^] # Re: Seulement 1000 lignes de code

        Posté par  . Évalué à 1.

        Oui c'est vrai mais dans ce cas là ne faudrait il pas comparer 'YUI-core' et 'Ext-core' car les 10 000 lignes de code savent faire le café et les croissants chauds !

  • # Persistence

    Posté par  . Évalué à 2.

    Ça a l'air pas mal du tout, mais comment ça se passe lorsqu'on veut persister les données sur un serveur ? Est-ce qu'on ne risque pas d'avoir à implémenter deux fois le modèle ? (sur le serveur et le client)

    • [^] # Re: Persistence

      Posté par  (site web personnel) . Évalué à 1.

      Si, mais ce n'est pas forcement un problème.

      Confronté à un cas comme cela, j'ai scripté cela, et les modèles JS sont générés automatiquement à partir du modèle serveur. Via introspection sur les objets (propriétés et relation), cela se fait facilement. En gros, j'ai codé cela en 4h tests compris.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.