Pourquoi choisir Backbone
en 2015 ?
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/880520/Backbone_logo_logo_only.png)
@florentduveau
Meetup Backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
Le tableau comparatif de la discorde
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416644/fmk_lines__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
Le gros malentendu
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/880520/Backbone_logo_logo_only.png)
=
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/911752/angular.png)
=
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/911800/ember.jpg)
≠
WHAT SHOULD BEGINNERS CHOOSE: ANGULARJS, EMBER.JS, OR BACKBONE.JS?
AngularJS vs. Backbone.js
AngularJS vs. Backbone.js vs. Ember.js
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
retour sur Backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/904169/backbonejs.png)
En quelques mots
Créé et maintenu par Jérémy Ashkenas
Première version le 13 octobre 2010
Dernière version 1.2.0 (13 mai 2015)
1 869 lignes de code, commentaires compris
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907352/airbnb.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907353/New-York-Times.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907355/groupon.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907361/bf-free4play.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907364/LinkedIn-Logo-2C.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/907367/soundcloud.png)
Utilisé en production par :
...
![](http://www.accengage.com/wp-content/uploads/2014/07/bnp-paribas-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1421956/logo-ruche.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1421957/logo-photobox.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430626/trello.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430656/rdio.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
LA GENÈSE BACKBONE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430833/documentcloud.png)
2009/2010, Jeremy A. travaille sur
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430883/docCloud2.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
LA GENÈSE BACKBONE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430946/DC1__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1430959/DC2.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
LA GeNÈSE BACKBONE
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1431377/DC3__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1431533/DC4__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
le WORKFLOW Backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1431624/DC5__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1431626/DC6__1_.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
premiers enseignements
- Backbone est mature
- Backbone est stable
- Backbone se concentre sur la donnée
Backbone demande une réflexion sur l'API
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
AUTRE ENSEIGNEMENT
Communication orientée évènements
Flux
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
la philosophie backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/880520/Backbone_logo_logo_only.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/911752/angular.png)
=
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/911800/ember.jpg)
≠
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914429/couteausuisse.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438798/brique.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914451/react.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
la philosophie backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/880520/Backbone_logo_logo_only.png)
Les données OK, mais pour les vues...
- Créations et suppressions manuelles
- Un seul type "View"
- Pas de stratégie de templating
- Un pauvre one/way binding
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
la philosophie backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/880520/Backbone_logo_logo_only.png)
Les données OK, avec une
- Librairie légère et compréhensible
- Emprunte mémoire faible et maîtrisé
- Très peu de dépendances
- Ajouts de briques suivant nos besoins
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914443/backbone.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914447/marionette.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914449/underscore.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914451/react.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914456/mustache.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914473/requirejs.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/914492/bluebird.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
la philosophie backbone
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438826/browserify-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438838/lodash-logo.png)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438859/jquery-logo.jpg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438865/zepto.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1438895/epoxy.jpeg)
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
la philosophie backbone
- Séparation des rôles
- Petites briques
- Choix des outils
Approche Modulaire
Approche craftsman
![](https://s3.amazonaws.com/media-p.slid.es/uploads/243495/images/1416630/logo_bow_300.png)
Pourquoi choisir backbone en 2015
Si vous consommez une API REST
Si vous avez une architecture modulaire
Si vous voulez quelque chose simple et léger
![](https://s3.amazonaws.com/media-p.slid.es/uploads/florentduveau/images/904512/questions.gif)
Des questions ?
@florentduveau
Merci !
<3 Backbone <3
BoF / Backbone
By Florent DUVEAU
BoF / Backbone
- 4,773