METEOR LEITE Armando PERKOVA Temjanika MARIN Geoffrey PERKOVA Jaglika mai 2015
Un Meteor, c'est quoi? Framework "Lourd" de Node.js : Système à part entière développé autour de Node.js. A son propre éxécutable. Développement avec un code isomorphe : Webapps pour les navigateurs. Cordova : applications natives hybrides pour ios et Android.
Les offres du Meteor Même langage, même API! Côté client et côté server. Communication client/server plus facile. SGBD côté client! Requêtage possible hors connexion server. Programmation réactive : la vue est modifiée avant le traitement de la requête par le server.
Les 7 règles du Meteor (I) "Data on wire " Le server n'envoie que des données au client. Le client s'occupe du rendu de l'application. "One language " Même principe que Node.js : Javascript côté server. "Database Everywhere " Base de donnée accessible par le client et le server. La sécurité dans tout ça?
Les 7 règles du Meteor (II) "Latency Compensation " Changement de la vue avant le traitement de donnée par le server. "Full Stack Reactivity " Tout élément de la vue peut changer sans aucune requête. "Embrace the Ecosystem " Totalement open-source. "Simplicity Equals Productivity " Code propre et APIs simple d'utilisaton.
Mais au final, comment fonctionne Meteor?
Meteor et ses données Côté Server SGBD NoSQL imposé : MongoDB. Côté Client Système de "cache" via MiniMongo. Stockage de donnée en attente de synchronisation avec le server.
Le Meteor en temps réel Les étapes : 1. Action de l utilisateur modifiant le cache local. 2. Mise à jour de l interface client. 3. Envoie de la requête vers le serveur. 4. Vérification des données et enregistrement dans la BDD. 5. Renvoie du résultat vers le cache client. 6. Mise à jour de l interface client.
Template - La vue du Meteor (I) Template Langage spécifique à Meteor pour modifier le HTML. Syntaxe générale : {{...}} langage Spacebars utilisé pour ajouter des fonctionnalités dans HTML La vue est définie à l'aide de template. Exemple de template : <body> <ul> {{#each tasks}} {{> task}} {{/each}} </ul> </body>
Template - La vue du Meteor (II) Helpers (I) Contexte JavaScript Les données sont accessible depuis mot-clé this. Un template helper va hériter de son contexte de données à partir de son template lui-même template contexte HTML helper contexte JavaScript
Lien client/server DDP Petit protocole de communication en temps réel. Basé sur Sockjs (utilisation de websocket). Oplog Observer Observe les changements dans la base de donnée côté server. Communique les changements via DDP au(x) client(s).
Les collections de Meteor Intérêts Stockage des données pour MongoDB. Persistance des données. Synchronisation entre les collections côtés server et client : moins de code server.
Une session de Meteor Intérêts Accessible de partout dans l'application. Zone de stockage de données réactives. Utilisation Stockage d'états éphémères de l'utilisateur courant (ex: un tri d'article). Session.set('pageTitle', 'A different title'); Session.get('pageTitle');
Packages Account-ui {{> loginbuttons}} permet d inclure le formulaire de connexion dans les templates. Inclut d'autres packages pour d'autres services de connexion (ex : account-facebook). Spiderable SEO : indexation du site sur les moteurs de recherche. Phantom.js : permet aux moteurs de recherche d'avoir un rendu du site. Plein d'autres: Less, Underscore, Email, Atmosphere Catalogue de packages pour Meteor. https://atmospherejs.com
Le Meteor est génial Avantages Fluide Simple d'utilisation Développement rapide Documentation riche
... ou presque. Inconvénients SGBD NoSQL imposé; Pas de développement mobile sur Windows; Probable temps d'adaptation à l'api.
Le Meteor est simple Installation Windows : lancer l'éxécutable. OS X / Linux : curl https://install.meteor.com/ sh Probable temps d'adaptation à l'api
Déploiement galactique Déployer son application Donner un nom de domaine accessible : meteor deploy my_app_name.meteor.com L'adresse est dès lors accessible.
Merci de votre écoute! Liens utiles Site officiel : https://www.meteor.com/install Guide Meteor : http://fr.discovermeteor.com/