Skip to content

Commit 3a761bd

Browse files
committed
fix typo
1 parent 72cbf22 commit 3a761bd

File tree

1 file changed

+32
-15
lines changed

1 file changed

+32
-15
lines changed

_posts/2012-02-25-backbone-tips-from-document-cloud.markdown

Lines changed: 32 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -326,13 +326,16 @@ dc.app.editor = new Backbone.View.extend({
326326
},
327327
{% endhighlight %}
328328

329-
Regardez également comment le module parent partage son instance avec ses enfants : `new dc.ui.ReplacePagesEditor({editor : this})`.
329+
Regardez également comment le module parent partage son instance avec
330+
ses enfants : `new dc.ui.ReplacePagesEditor({editor : this})`.
330331
C'est ainsi que les enfants peuvent discuter avec le module parent, ou discuter avec les autres enfants.
331332

332333

333334
#### Remarque sur RequireJS
334335

335-
Si pendant la lecture de ce paragraphe vous vous dites que vous n'avez pas besoin de tout ça car vous avez RequireJs. Sachez que lorsque vous définissez un module avec RequireJs, vous avez le choix entre retourner une classe, ou un singleton, mais faire les deux devient problématique. Vous aurez donc solutionné un problème, mais pas les deux.
336+
Si pendant la lecture de ce paragraphe vous vous dites que vous n'avez pas besoin de tout ça car vous avez RequireJs.
337+
Sachez que lorsque vous définissez un module avec RequireJs, vous avez le choix entre retourner une classe,
338+
ou un singleton, mais faire les deux devient problématique. Vous aurez donc solutionné un problème, mais pas les deux.
336339

337340
MyModel.js :
338341

@@ -383,17 +386,22 @@ dc.ui.Document = Backbone.View.extend({
383386

384387
Je vous entends crier au loin, mais c'est fortement coupler ça !!!
385388

386-
Comme il n'y a pas de typage fort en javascript vous vous en moquez! C'est comme si vous utilisiez des interfaces en Java. Si vous voulez remplacer un module par un autre, il suffit que les deux modules possèdent les mêmes signatures de fonctions et vous pouvez les remplacer.
389+
Comme il n'y a pas de typage fort en javascript vous vous en moquez! C'est comme si vous utilisiez des interfaces
390+
en Java. Si vous voulez remplacer un module par un autre, il suffit que les deux modules possèdent les mêmes signatures
391+
de fonctions et vous pouvez les remplacer.
387392

388-
Maintenant si vous voulez savoir quelles sont les fonctions publiques et les fonctions privées, je vous déconseille de les préfixer par un undercsore. Déjà, c'est moche et en plus c'est inutile car un simple grep suffit pour savoir quelles sont les méthodes publiques :
393+
Maintenant si vous voulez savoir quelles sont les fonctions publiques et les fonctions privées, je vous déconseille
394+
de les préfixer par un undercsore. Déjà, c'est moche et en plus c'est inutile car un simple grep suffit pour savoir
395+
quelles sont les méthodes publiques :
389396

390397
$ grep -R "replacePagesEditor\." .
391398
./public/javascripts/ui/workspace/toolbar.js: dc.app.editor.replacePagesEditor.open();
392399
./public/javascripts/editor/control_panel.js: dc.app.editor.replacePagesEditor.toggle();
393400
./public/javascripts/app/editor.js: this.replacePagesEditor.close();
394401

395402

396-
Après vous pouvez communiquer via des événements, mais il faudra un peu plus de travail pour synchroniser plusieurs événements. De plus, les appels seront moins facile à repérer dans le code.
403+
Après vous pouvez communiquer via des événements, mais il faudra un peu plus de travail pour synchroniser plusieurs
404+
événements. De plus, les appels seront moins facile à repérer dans le code.
397405

398406
Le problème avec les événements en JS, c'est que l'on perd vite le contrôle de l'application et tout parait magique.
399407

@@ -451,7 +459,10 @@ _.extend(dc.model.DocumentSet.prototype, dc.model.Selectable);
451459

452460
### Des vues limitées à une petite portion du DOM
453461

454-
Une des choses les plus belles avec Backbone c'est l'attribut `this.el`, et les nombreuses utilisations : `this.$el`, `this.$`, ... Utiliser `el` vous permet de limiter l'interaction qui vous aurez avec le DOM. Non seulement vous gagnez en performance (les sélecteurs jQuery sont précis) mais en plus cela vous empêche de modifier des éléments qui n'appartiennent pas à votre vue.
462+
Une des choses les plus belles avec Backbone c'est l'attribut `this.el`, et les nombreuses
463+
utilisations : `this.$el`, `this.$`, ... Utiliser `el` vous permet de limiter l'interaction qui vous aurez
464+
avec le DOM. Non seulement vous gagnez en performance (les sélecteurs jQuery sont précis) mais en plus cela
465+
vous empêche de modifier des éléments qui n'appartiennent pas à votre vue.
455466

456467
<p class="center">
457468
<img src="/public/img/2012-02-25-backbone-tips-from-document-cloud/DocumentCloud.png" border="0" width="600" />
@@ -462,7 +473,8 @@ Alors vous l'aurez compris, je ne veux plus voir de `$` dans vos applications Ba
462473

463474
### Des conventions qui rendent la lecture du code tellement plus agréable.
464475

465-
Il y a une autre chose que j'aime dans Backbone, ce sont ses conventions. Par exemple dans une vue, on repère instantanément les interactions utilisateurs :
476+
Il y a une autre chose que j'aime dans Backbone, ce sont ses conventions. Par exemple dans une vue,
477+
on repère instantanément les interactions utilisateurs :
466478

467479
{% highlight javascript %}
468480
events : {
@@ -475,7 +487,8 @@ events : {
475487
},
476488
{% endhighlight %}
477489

478-
Mais vous pouvez faire la même chose partout, choisir des conventions et s'y tenir. Par exemple, mettre les constantes et haut et en majuscule :)
490+
Mais vous pouvez faire la même chose partout, choisir des conventions et s'y tenir. Par exemple, mettre les constantes
491+
et haut et en majuscule :)
479492

480493
Backbone.View.extend({
481494
FAVORITES_URL : '//twitter.com/favorites/documentcloud.json?callback=?',
@@ -485,8 +498,11 @@ Mais vous pouvez faire la même chose partout, choisir des conventions et s'y te
485498

486499
Tout le monde connait les plugins jQuery. Mais saviez vous que vous pouvez faire la même chose avec Backbone?
487500

488-
Par exemple, dans DocumentCloud il y a un plugin bien pratique le [setMode](https://github.com/Backbonist/Backbone.setMode).
489-
SetMode permet de gérer une machine à état au niveau des vues. Lorsque l'on fait un setMode, on ajoute une classe CSS sur le `el` de la vue (pratique pour le CSS) et on ajoute un attribut à l'instance de la vue afin de faciliter les interactions inter-modules.
501+
Par exemple, dans DocumentCloud il y a un plugin bien pratique,
502+
le [setMode](https://github.com/Backbonist/Backbone.setMode).
503+
SetMode permet de gérer une machine à état au niveau des vues. Lorsque l'on appelle setMode, on ajoute une classe CSS
504+
sur le `el` de la vue (pratique pour le CSS) et on ajoute un attribut à l'instance de la vue afin de faciliter
505+
les interactions inter-modules.
490506

491507

492508
Je sens que vous ne m'avez pas bien compris, voici un exemple:
@@ -572,7 +588,8 @@ reprocessText : function(forceOCR) {
572588

573589
### Découper tout en petit morceau.
574590

575-
Je vous ai déjà dis que vous deviez découper vos vues en sous vues afin de ne travailler que sur des toutes petites portions du DOM. Mais vous pouvez, et devrez faire de même avec les modèles.
591+
Je vous ai déjà dis que vous deviez découper vos vues en sous vues afin de ne travailler que sur des toutes
592+
petites portions du DOM. Mais vous pouvez, et devrez faire de même avec les modèles.
576593

577594
Lorsque l'on récupère un modèle à partir d'un JSON, on récupère un gros bloc d'un coup qu'il va falloir découper.
578595

@@ -608,19 +625,19 @@ dc.model.Document = Backbone.Model.extend({
608625

609626
Souvent vous aurez besoin de lier les événements du sous-modèle avec le modèle.
610627
Il faudra le faire à la main, mais toute la démarche est bien expliquée sur le site officiel : <http://documentcloud.github.com/backbone/#FAQ-nested>.
611-
Ce n'est pas trop difficile à faire et tout est très logique.
612628

613629
### Et pour finir : la minification de vos fichier JS.
614630

615631
Vous n'alliez pas mettre en prod votre application avec tout ces petits
616632
fichiers ...
617633

618-
Comme nous n'avons pas utilisé de loader javascript vous être entièrement
634+
Comme nous n'avons pas utilisé de loader javascript vous êtes entièrement
619635
libre de choisir le minifieur JS que vous voulez. Et c'est un luxe ça !!!
620636

621637
Si vous n'avez pas de Backend, choisissez plutôt un des [builds scripts de HTML5BoilerPlate](http://html5boilerplate.com/docs/Build-script/).
622638

623-
Si vous utilisez un Backend en JAVA, [Wro4J](http://code.google.com/p/wro4j/) est un projet sérieux que vous pouvez utiliser sans risque.
639+
Si vous utilisez un Backend en JAVA, [Wro4J](http://code.google.com/p/wro4j/) est un projet sérieux
640+
que vous pouvez utiliser sans risque.
624641

625642
Et n'oubliez pas de servir vos assets JS et CSS avec la compression GZIP activé :)
626643

@@ -636,4 +653,4 @@ Découvrez également l'écosystème autour de Backbonist:
636653
* [Un compilateur JST fonctionnant avec Handlebars, jQuery-tmpl, underscore ou simplement des strings](https://github.com/Backbonist/universal-jst)
637654
* [Un serveur HTTP qui force les navigateurs à se réactualiser quand les sources changent](https://github.com/Backbonist/serveAndWatch)
638655
* [Un script de build qui lit sa conf dans l'index.html](https://github.com/Backbonist/no-build-conf-build-script)
639-
* [Le meilleur IDE au monde, configuré pour du développement Web](https://github.com/Backbonist/ViM-for-web-dev)
656+
* [Le meilleur IDE au monde, ViM, configuré pour du développement Web](https://github.com/Backbonist/ViM-for-web-dev)

0 commit comments

Comments
 (0)