25
Erwan BOULARD https://twitter.com/erwan boulard

Meteor js 1.0

Embed Size (px)

Citation preview

Page 1: Meteor js 1.0

Erwan BOULARDhttps://twitter.com/erwanboulard

Page 2: Meteor js 1.0

Agenda

1. Qu’est ce que Meteor JS ?

2. Principes

3. Le framework

4. Développement cross-plateforme

5. Qui l’utilise ?

6. Démo

Page 3: Meteor js 1.0

Qu’est ce que Meteor JS ?

Page 4: Meteor js 1.0

Qu’est ce que Meteor JS ?

Framework de développement web en Javascript basé sur node

Permet de créer des applications multiplateformes (web et mobile)

Langage JavaScript coté serveur et coté client

Permet d’avoir un comportement proche du temps réel

Page 5: Meteor js 1.0

Principes

Page 6: Meteor js 1.0

1 – Echange de données

Plus d’échange de fichiers HTML après le premier appel (contrairement au comportement classique d’applications PHP, JavaEE, etc.) Meteor, n'envoie pas de code HTML, il envoie des données et laisse au client le soin de

faire le rendu de l'application.

Utilisation du protocole DDP(Distributed Data Protocol) pour la communication client/serveur Protocole basé sur les websockets Echange de données au format EJSON (json étendu – Gestion de types

supplémentaires)

Page 7: Meteor js 1.0

2 – Un seul langage

JavaScript pour travailler côté serveur et client

Mutualisation de codes entre le client et le serveur

Possibilité d’utiliser d’autres langages comme CoffeeScript, Typescript, ECMAScript, etc.

Page 8: Meteor js 1.0

3 – Bases de données coté serveur et client

Une base de données MongoDB côté serveur

Une base MiniMongo côté client (réimplémentation d’une partie de l’API MongoDB)

Une Synchronisation entre les deux

Page 9: Meteor js 1.0

4 – Compensation de latences

Compensation grâce au principe d’« Optimistic UI »

Pour pallier le temps de latence d’un aller retour serveur, une compensation est effectuée directement dans le navigateur

Plutôt que d'attendre que les données envoyées ne soient renvoyées, un contrôle optimiste est fait côté client dans l’attente d’un retour serveur

Page 10: Meteor js 1.0

5 – Une grande réactivité

Meteor est basé sur la réactivité et s’approche du temps réel (connecteur livequery)

Les données du backend et du frontend sont mises à jour automatiquement

Toutes les informations dans le navigateur client peuvent changer à n'importe quel moment, sans que le client n'ait effectué une seule requête

Page 11: Meteor js 1.0

6 – Simplicité synonyme de productivité

Plateforme complète sans besoin d’ajout de composants externes supplémentaires

Installation simple et rapide

Développement efficace en très peu de lignes de codes

Meteor est fortement modulable grâce à ses packages officiels ou issus de la communauté (répertoriés sur Atmosphere).

Des outils et des modules pour tous les besoins

Page 12: Meteor js 1.0

7 – L’écosystème

Meteor possède son propre gestionnaire de packages, « Atmosphere » (https://atmospherejs.com), qui propose près de 10000 packages

La communauté autour de Meteor est conséquente et très active

Compatibilité assurée avec les modules nodejs (npm)

Populaire sur Github : 31k stars (classé 11ème des projets js les plus étoilés de github – Déc 2015)

Page 13: Meteor js 1.0

Le framework

Page 14: Meteor js 1.0

Architecture applicative

Meteor est un ensemble de projets qui constitue une plateforme complète pour le développement d’application desktop et mobile

Meteor propose une compatibilité avec Angular ou React, en remplacement de son moteur de template Blaze

Page 15: Meteor js 1.0

Build, packaging, déploiement

Meteor intègre un outil pour le build, packaging et déploiement

Ces étapes sont toutes automatisées et nécessitent un minimum de temps de configuration

De nombreux packages sont disponibles pour répondre à des besoins particuliers

Une plateforme de test en ligne est disponible et mise à disposition par Meteor

Page 16: Meteor js 1.0

Sécurité

Pas d’accès direct à la base Mongo depuis le client

Pas de synchronisation complète de la base Mongo côté serveur dans la base client

On à la main sur les données que l’on souhaite synchroniser avec la base de données coté client (méthodes publish/subscribe)

D’autres procédés permettent d’ajouter une couche de validation avant les opérations en bdd côté client et côté serveur (callbacks Allow/Deny ou Meteor Methods)

Page 17: Meteor js 1.0

Le test sur Meteor

Le test runner officiel de Meteor est Velocity (développé par la communauté Meteor)

Possibilité d’utiliser d’autres tests runner (ex : karma, chimp, etc)

Ecriture de tests avec les principaux fwk JSJasmineMochaCucumber

Page 18: Meteor js 1.0

Développement cross-plateforme

Page 19: Meteor js 1.0

Développement Cross-platforme

Génération à partir du même code un site web et des applications mobiles multiplateformes

Intégration de Apache Cordova pour la génération d’applications mobiles IOS et Android (et pas windows phone)

Propose un package, spiderable, pour l’optimisation du référencement par les moteurs de recherches

Page 20: Meteor js 1.0

Qui l’utilise ?

Page 21: Meteor js 1.0

Qui l’utilise ?

https://rocket.chat/ : Plateforme type slack (outil de collaboration en ligne)

https://beta.workpop.com/ : Plateforme proposant des offres d’emploi

https://hansoftx.com : plateforme collaborative

https://codefights.com/ : Test de coding

https://github.com/idanwe/meteor-whatsapp : whatsapp en version Meteor

etc….

Page 22: Meteor js 1.0

Demo

Page 23: Meteor js 1.0

Demos

Lien vers la démo : http://eboulard.meteor.com

Le live update

Structure d’un projet meteor

Page 24: Meteor js 1.0

Sources

Page 25: Meteor js 1.0

Sources

http://info.meteor.com/https://fr.wikipedia.org/wiki/Meteor_(framework) http://joshowens.me/what-is-meteor-js/ http://fr.discovermeteor.com/https://openclassrooms.com/courses/creez-une-single-page-app-avec-nod

e-js-et-meteor/

http://www.tiz.fr/meteor-js-framework-javascript/ https://meteorhacks.com/introduction-to-ddp.html