Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

Meteor 0.8 : Blaze, le nouveau moteur de templating en live,
La plate-forme JavaScript pour créer des applications Web approche de sa version 1.0

Le , par vermine

0PARTAGES

6  0 
Meteor 0.8 : Blaze, le nouveau moteur de templating en live
La plate-forme JavaScript pour créer des applications Web approche de sa version 1.0


Meteor est une plate-forme open source pour créer des applications Web de qualité et cela très rapidement, peu importe que vous soyez un expert développeur ou bien un débutant. Avec Meteor, vous n'avez plus à gérer les ressources serveur ou une base de données, ni à manipuler une couche ORM (couche d'abstraction à la base de données), ni à organiser le va-et-vient entre clients et serveur en cas de données invalides.

En voici plusieurs caractéristiques :

  • écrire son application entièrement en JavaScript. Les mêmes API sont disponibles sur le client et sur le serveur donc le même code peut être exécuté facilement dans l'environnement ;
  • écrire simplement ses modèles. Ils se mettent à jour automatiquement lorsqu'il y a des modifications de données dans la base de données. L'outil prend en charge n'importe quel langage de création de modèles ;
  • écrire son code client comme s'il était en cours d'exécution sur le serveur et avec un accès direct à la base de données ;
  • lorsqu'un utilisateur apporte une modification, son écran se met à jour immédiatement, il n'y a pas d'attente serveur. Si le serveur rejette la demande ou s'il l'exécute différemment, le client se reconstitue avec ce qui s'est réellement passé ;
  • mettre à jour votre application pendant que les utilisateurs sont connectés sans les déranger. Lorsque vous publiez une nouvelle version, le nouveau code est parfaitement injecté dans chaque fenêtre du navigateur dans laquelle l'application est ouverte ;
  • écrivez tout le code en JavaScript (si vous le souhaitez). L'interface utilisateur s'exécute dans votre navigateur. Les fonctions sensibles sont exécutées dans un environnement privilégié ;
  • une seule commande pour compiler votre application entière dans une archive tar. A décompresser n'importe où où se trouve node.js en une seule commande également ;
  • vous pouvez connecter tout ce que vous voulez à Meteor, des applications mobiles natives aux bases de données de Arduinos (une plate-forme de prototypage électronique open source qui permet de créer des objets électroniques interactifs). Il suffit d'implémenter le protocole DDP ;
  • les packages Smart Meteor sont de petits programmes qui peuvent injecter du code dans le serveur ou le client, ou même pré traiter vos sources. C'est pourquoi ils sont les plus petits possible, avec un ensemble de dépendances minimal. Vous pouvez ainsi utiliser vos modèles, vos jeux de tests ou vos frameworks de manipulation du DOM préférés.


L'équipe a annoncé la sortie de la version 0.8.0.

Elle ne contient à vrai dire qu'une seule nouveauté donc si vous aviez déjà utilisé la révision précédente (0.7.2), vous pouvez mettre à jour votre code sans problème (sauf si vous utilisiez Spark). Cette nouveauté, c'est Blaze, la nouvelle génération du moteur de templating en live.

Blaze transforme des modèles HTML en éléments du DOM pouvant être mis à jour en direct. Lorsqu'un utilisateur modifie les données ou bien que de nouvelles données arrivent sur le réseau et qu'elles dépendent d'un modèle, Blaze met à jour votre écran automatiquement. Sa manière de faire est différente des précédentes versions du moteur Spark.

Voici quelques caractéristiques :

  • simple d'utilisation pour le développeur qui crée des templates HTML tout à fait normaux ;
  • les mises à jours sont les plus minimalistes possible afin d'améliorer les performances. Seul le nécessaire est rafraîchi ;
  • ce moteur est compatible avec les autres codes qui manipulent le DOM et les CSS comme par exemple un plugin jQuery ;
  • vous pouvez inclure du SVG à côté ou dans votre template HTML, le code sera correctement interprété ;
  • le moteur est divisé en deux parties. La première est un compilateur qui traduit le template en code JavaScript. La seconde est une API qui restitue les éléments et qui assure le suivi de leurs dépendances et donc des mises à jours ;
  • etc.


Blaze est une nouvelle étape importante pour la plateforme qui continue son avancée vers sa version 1.0.

Site officiel.
L'article sur la version 0.8.0.
Exemples et documentation.

Une erreur dans cette actualité ? Signalez-le nous !

Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 28/03/2014 à 15:17
Les moteurs de templating des grands frameworks JavaScript semblent tous migrer progressivement du String based au DOM-based : avec à la clé moins d'opérations sur le DOM pour des opérations mineures, donc un templating plus fin et plus intelligent tout en étant plus rapide ; quitte à restreindre un peu la flexibilité de la syntaxe (ce qui n'est pas forcément un mal)

AngularJS, KnockoutJS, Ractive et aujourd'hui Meteor font du data-binding DOM-based. Ember va bientôt passer le cap avec HTMLBars, une version pseudo-DOM-based de Handlebars.

En parallèle, un article vient récemment d'être publié décriant le templating String-based comme néfaste : http://flippinawesome.org/2014/03/24...dered-harmful/

Je me réjouis de cette évolution pour trois raisons :
  • on s'éloigne de plus en plus du templating brouillon PHP/JSP où le gap client-serveur entraînait de-facto une rupture entre le modèle de données et le DOM généré
  • cela va encourager le passage de modèles de données côté client ; les avantages à en tirer sont indéniables : requêtes plus légères (JSON au lieu de HTML), possible mode hors-ligne, mise à jour des vues sans attendre les réponses serveur...
  • le templating DOM-based se prête très bien aux animations SVG : une technologie avec un énorme potentiel et pourtant assez sous-exploitée aujourd'hui. On va peut-être voir un regain d'intérêt maintenant que la liaison au modèle de données peut se faire côté template plutôt que par d'obscurs passages de paramètres en JS comme on le ferait pour un rendu canvas.


Si vous souhaitez passer dès aujourd'hui à une bibliothèque de templating DOM-based sans embarquer tout un framework avec, Ractive ou RivetsJS sont de bons choix.

Je travaille aussi sur ma propre bibliothèque, avec comme objectif une solution plus légère, plus simple et moins permissive que les autres solutions actuelles. J'espère pouvoir la publier sur dvpz.com d'ici le mois de mai.
3  0 
Avatar de Kynoo
Membre à l'essai https://www.developpez.com
Le 28/03/2014 à 22:03
Quid du SEO avec cette approche ?
Derby se débrouille bien de ce côté
0  0 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 29/03/2014 à 2:44
Oui, c'est le problème majeur du templating client: les bots d'indexation et de manière plus générale les clients avec JavaScript désactivé. Google travaille sur des spécifications pour l'indexation des sites ajax-driven, mais ça implique à l'heure actuelle beaucoup de boulot et de règles à respecter pour les développeurs : https://developers.google.com/webmas...etting-started

La solution la plus élégante que je connaisse, bien qu'elle soit complexe et coûteuse, est de faire tourner un navigateur headless côté serveur qui vienne interpréter le JavaScript et envoyer le HTML produit aux clients avec JS désactivé. PhantomJS ou Rhino sont les deux navigateurs headless les plus connus. Cette version JS-disabled est envoyée soit après user agent sniffing (typiquement, les User Agent des Google Bots), soit via une redirection cachée dans une balise noscript dans la version "normale" :
Code html : Sélectionner tout
1
2
3
<noscript> 
<meta http-equiv="refresh" content="1; url=http://monsite.com/?js=no" /> 
</noscript>

Si on veut retrouver un fonctionnel complet avec JS désactivé, il faut que tout le contenu généré par JavaScript soit déterminé par des URLs et paramètres d'URL spécifiques. Quand on commence à utiliser à tour de bras le data-binding, ça devient rapidement mission impossible. En pratique, je pense que la plupart des sites utilisant cette technique ont laissé tomber et se contentent de donner à manger du contenu Search-Engine-Optimized aux bots des moteurs de recherche ; tandis que les utilisateurs avec JS désactivé sont gentiment recalés avec un texte explicatif. Eh oui, ça représente moins d'1% des requêtes et dans ce petit pourcent, on trouve en majorité des navigateurs obsolètes ou ésotériques qu'aucun développeur sain d'esprit ne voudrait consacrer une journée de travail.
0  0 
Avatar de SylvainPV
Rédacteur/Modérateur https://www.developpez.com
Le 30/03/2014 à 11:42
Meteor offre un hébergement gratuit, mais il n'est pas du tout obligatoire : si tu as besoins plus spécifiques ou veux garder le contrôle de tes données, tu peux parfaitement utiliser Meteor sur ton propre serveur. Les serveurs de meteor.com servent davantage aux démos/expérimentations avant une utilisation réelle.
0  0 
Avatar de devman1
Futur Membre du Club https://www.developpez.com
Le 30/03/2014 à 6:26
Pour ma part, toutes ces plateformes de développement cloud c'est de la superbe arnaque. je ne sais pas pourquoi tout le monde reste muet et ne dénonce pas cela car tout ne peut pas être dans le cloud. Tout d'abord on n’oublie qu'il faut payer sa facture internet et ensuite comment est ton sûr de la confidentialité du projet que l'on développe sur une telle plateforme?
0  1