POURQUOI                         ?

Une meilleure façon de construire

des applications web

Comment est-ce différent ?

Les 7 principes fondamentaux

de Meteor

  1. Seulement des données sur le réseau
  2. Le même langage partout
  3. La même base de données partout
  4. Compensation de la latence
  5. Réactivité globale
  6. Adhérer à l'écosystème
  7. Simplicité = productivité

1. Seulement des données sur le réseau

  • Toute l'interface client est chargée à la connexion
  • Une mini base de données dans le navigateur
  • Les résultats des requêtes toujours à jour

2. Le même langage partout

  • Le même code sur le client et le serveur
    • Requêtes base de données sur le client
    • console.log sur le serveur
  • Sécurisation du code sensible possible
  • Plus de ré-écriture
    • des mêmes règles de validation
    • des mêmes fonctions et méthodes

3. La même base de données partout

  • La même API claire partout
  • Requêtes sur le client instantanées
  • Fonctionne en déconnecté
  • Synchronisations automatiques

4. Compensation de la latence

Sur le navigateur on précharge et on simule le modèle de données.

L'utilisateur à l'impression qu'il n'y à aucune latence avec le serveur.

Le site parait aussi rapide qu'une vraie application.

5. Réactivité globale

  • Le temps réel pour tous
  • Toutes les vues sont à jours
  • Les résultats des requêtes sont synchronisés
  • C'est automatique

6. Adhérer à l’écosystème 

Projet Open Source qui intègre des outils et des frameworks éprouvés plutôt que de les remplacer.

7. Simplicité = Productivité

  • Installation d'un poste développeur en 5 minutes
  • Prototypage d'application ultra-rapide
  • Les développeurs sont plus productifs
    • Le même code sur le client et sur le serveur
    • Rafraîchissement du navigateur à chaque modification
  • Rendu temps réel du travail en cours

Ne pas ré-inventer la roue

  • Il y a un paquet pour ça
    • Authentification facebook, google, twitter ...
    • Formulaires automatiques
    • Routeur 
    • CoffeeScript / Less / Sass 
    • Bootstrap / Foundation 
    • i18n ...
  • Séparer ses pages en blocs réutilisables
  • Les règles de la base de données sont valables partout
  • Minification et déploiement automatique

Codez en temps réel

  • Lorsque vous modifiez le code, le navigateur se rafraichit automatiquement
  • Lorsque le résultat d'une requête change, c'est propagé à tous les clients qui observent ces données

La sécurité ?

  • On défini les lois pour les requêtes CRUD globalement
    • Réglable très finement au champs et à l'action en fonction de la requête, de l'utilisateur et du contenu ciblé
    • Les méthodes serveur ont tous les droits
  • Seul les données spécifiques au client lui sont transférées
  • On peux crypter dans le navigateur avant le stocker en base
  • On peut définir le schéma de la base de données

Scalabilité ?

  • MongoDB peut être répartie et découpé
  • Le gros des traitements se fait dans le navigateur
  • Meteor est compatible Heroku et nginx

Qu'est ce qu'il me faut pour commencer ?

Un PC 
Node.js &
Meteor.com

Windows,

Linux

ou Mac

Et des ressources ?

Merci de votre attention