-
Notifications
You must be signed in to change notification settings - Fork 32
/
01-introduction.md.erb
112 lines (63 loc) · 9.45 KB
/
01-introduction.md.erb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
---
title: Introduction
slug: introduction
date: 0001/01/01
number: 1
points: 1
photoUrl: http://www.flickr.com/photos/62303607@N00/7779436538/
photoAuthor: Richard
contents: Apprendre ce qui rend Meteor si spécial.|Lire l'histoire de ce livre.|Comprendre comment ce livre est organisé.
paragraphs: 35
---
Commençons par un petit exercice mental. Imaginez que vous ouvriez le même dossier dans deux fenêtres différentes de votre ordinateur.
Cliquez maintenant dans une des deux fenêtres et effacez un fichier. Ce fichier a-t-il aussi disparu de l'autre fenêtre ?
Il n'est pas nécessaire de le faire réellement pour savoir que c'est bien le cas. Quand on modifie quelque chose dans notre système de fichier local, le changement s'applique partout sans avoir besoin de rafraîchir ou d'utiliser une fonction de rappel (callback). Ça marche, tout simplement.
Par contre, imaginons ce même scénario sur le web. Considérons par exemple que vous ouvriez le même panneau d'administration Wordpress dans deux fenêtres de navigateur, puis que vous créiez un nouveau post dans l'une d'elles. Contrairement à l'expérience précédente, et même si vous attendez, l'autre fenêtre ne changera pas à moins de la rafraîchir.
Nous nous sommes habitués d'années en années à l'idée qu'on ne communique avec un site que par de courtes actions, distinctes les unes des autres.
Heureusement, Meteor fait partie d'une nouvelle vague de frameworks et de technologies qui comptent bien remettre en question ce statu quo en rendant le web temps-réel (real-time) et réactif.
### Qu'est-ce que Meteor ?
Meteor est une plate-forme basée sur Node.js pour créer des applications web temps réel. C'est ce qui fait le lien entre la base de données de votre application et son interface utilisateur, tout en assurant que les deux restent bien synchronisés.
Puisque Meteor est basé sur Node.js, il utilise JavaScript à la fois côté client et côté serveur. Autre chose, Meteor permet aussi de partager du code entre les deux environnements.
Tout cela nous donne une plate-forme pouvant être très puissante et très simple en fournissant une couche d'abstraction à de nombreux problèmes et pièges rencontrés lors du développement d'applications web.
### Pourquoi Meteor ?
Bon alors pourquoi passer votre temps à apprendre Meteor plutôt qu'une autre plate-forme ? Sans compter les nombreuses fonctionnalités de Meteor, la raison est claire : Meteor est facile à apprendre.
Comparé aux autres plate-formes, Meteor permet l'implémentation et le déploiement d'une application web temps réel en l'espace de seulement quelques heures. Et si vous avez un peu d'expérience avec le développement front-end, vous êtes déjà familier avec le JavaScript et vous n'aurez pas à apprendre un nouveau langage.
Meteor est peut-être la plate-forme idéale qui répond à tous vos besoins, mais peut-être pas. Puisqu'il ne faut qu'une soirée ou un week-end pour démarrer, pourquoi ne pas essayer ?
### Pourquoi ce livre ?
Sur les deux dernières années, nous avons travaillé sur de nombreux projets Meteor. Nous avons fait des applications webs et mobiles, open source et commerciales.
Nous avons beaucoup appris, mais trouver les réponses à nos questions n'était pas toujours très simple. Il nous a fallu assembler les pièces du puzzle à partir de sources multiples, et souvent même inventer nos propres solutions. Avec ce livre, nous souhaitions partager toutes ces leçons et créer un guide simple et détaillé qui vous aiderait à travers toutes les étapes de la construction d'une application Meteor.
L'application que nous allons construire est une version simplifiée des sites sociaux de nouvelles tels que [Hacker News](http://news.ycombinator.com) ou [Reddit](http://reddit.com). Nous l'avons appelé Microscope (par analogie avec son grand frère, [Telescope](http://telesc.pe) un autre projet Meteor open source). Pendant que nous le construirons, nous vous apprendrons tout les éléments nécessaires au développement d'une application Meteor comme la gestion des utilisateurs, les collections Meteor, le routing et beaucoup plus.
### À qui ce livre est-il destiné ?
Un de nos objectifs en écrivant ce livre est de garder les choses simples et accessibles. Ainsi, vous devriez être capable de suivre le cours sans expérience préalable de Meteor, Node.js, des frameworks MVC, ou encore de la programmation côté serveur en général.
En revanche, on attend un connaissance élémentaire de la syntaxe et des concepts du JavaScript. Mais si vous avez déjà expérimenté un peu de code jQuery ou joué avec la console développeur du navigateur, vous ne devriez pas avoir de problème.
Si vous ne vous sentez pas au point avec JavaScript pour le moment, nous vous suggérons de jeter un œil à [JavaScript primer for Meteor (en anglais)](https://www.discovermeteor.com/blog/javascript-for-meteor/) avant de revenir sur ce livre.
### À propos des auteurs
Au cas où vous vous demandez qui nous sommes et pourquoi vous pouvez nous faire confiance, voici un peu d'information sur nous.
<%= image "tom-photo.jpg", "portrait" %>
**Tom Coleman** fait partie de [Percolate Studio](http://percolatestudio.com/), un studio de développement web ciblant la qualité et l'expérience utilisateur. Il travaille également sur [Atmosphere](http://atmosphere.meteor.com), un service de paquet pour vos applications Meteor. Enfin, c'est aussi l'un des cerveaux derrière de nombreux projets Meteor open source (par exemple [Iron Router](https://github.com/EventedMind/iron-router)).
<%= image "sacha-photo.jpg", "portrait" %>
**Sacha Greif** a travaillé avec des startups comme [Hipmunk](http://hipmunk.com/) et [RubyMotion](http://rubymotion.com/) en tant que concepteur produit et concepteur web. Il est le créateur de [Telescope](http://telesc.pe/) et de [Sidebar](http://sidebar.io/) (basé sur Telescope), et il est aussi le fondateur de [Folyo](http://folyo.me/).
### Chapitres & Apartés
Nous voulions que ce livre soit utile aussi bien pour l’utilisateur novice de Meteor que pour le programmeur avancé, ainsi nous avons séparé les chapitres en deux catégories : les chapitres normaux (numérotés de 1 à 14) et les apartés (numéros .5).
Les chapitres normaux constituent la ligne conductrice pour construire l’application, et nous essayerons de la rendre opérationnelle dès que possible en expliquant les étapes les plus importantes sans vous encombrer de détails.
D’un autre côté, les apartés iront plus loin dans les subtilités de Meteor, et vous aideront à mieux comprendre ce qui se passe réellement dans les coulisses.
Ainsi, si vous êtes débutant, vous pouvez passer les apartés pour votre première lecture, et revenir à elles une fois que vous aurez joué un peu avec Meteor.
### Commits & Instances en ligne
Il n’y a rien de pire que de suivre un livre de programmation et de tout à coup se rendre compte que le code n’est plus synchronisé avec les exemples et que plus rien ne fonctionne comme prévu.
Pour éviter cela, nous avons créé un [dépôt sur GitHub pour Microscope](https://github.com/DiscoverMeteor/Microscope), et nous proposerons également des liens directs vers les commits de Git à chaque modification de code. De plus, chaque commit est lié à une instance en ligne de l’application, ainsi vous pourrez le comparer avec votre copie locale. Ici un exemple de ce que vous pourriez voir :
<%= commit "11-2", "Afficher les notifications dans l'entête." %>
Une seule chose, ce n’est pas parce que nous mettons à votre disposition ces commits que vous devez juste passer d’un checkout au suivant. Vous apprendrez mieux si vous prenez le temps nécessaire pour écrire le code de l’application !
### Quelques ressources supplémentaires
Si jamais vous souhaitez en apprendre plus sur un point précis de Meteor, la [documentation officielle de Meteor](http://docs.meteor.com/) est le meilleur endroit pour commencer.
Nous vous recommandons également [Stack Overflow](http://stackoverflow.com/questions/tagged/meteor) pour la résolution de problèmes et les questions, ainsi que le [canal IRC](https://webchat.freenode.net/) #meteor si vous avez besoin d’aide en direct.
<% note do %>
### Ai-je besoin de Git ?
Il n'est pas nécessaire d'être familiarisé avec le contrôle de versions Git pour suivre ce livre, mais nous le recommandons fortement.
Si vous souhaitez passer à la vitesse supérieure, nous vous recommandons [Git Is Simpler Than You Think](http://nfarina.com/post/9868516270/git-is-simpler) de Nick Farina.
Si vous êtes un débutant, nous vous recommandons également l’application [GitHub](http://mac.github.com/) (Mac OS) qui vous permet de gérer vos dépôts sans utiliser la ligne de commande, ou [SourceTree](http://www.sourcetreeapp.com/) (Mac OS & Windows), tous deux gratuits.
<% end %>
### Nous contacter
- Si vous souhaitez nous contacter, vous pouvez nous envoyer un email à [hello@discovermeteor.com](mailto:hello@discovermeteor.com).
- De même, si vous trouvez une erreur typographique ou toute autre erreur dans le contenu du livre, vous pouvez nous en informer en [soumettant un bug dans ce dépôt GitHub](https://github.com/DiscoverMeteor/book/issues).
- Si vous avez un quelconque problème avec le code de Microscope, vous pouvez soumettre un bug dans le [dépôt de Microscope](https://github.com/DiscoverMeteor/Microscope/issues).
- Enfin, pour toute autre question vous pouvez aussi nous laisser un commentaire dans le panneau latéral de cette application.