Outils pour utilisateurs

Outils du site


issue97:c_c

Over the past year, I’ve written a number of C&C articles touching on web development (from JavaScript frameworks, to CSS preprocessors). Surprisingly, I have received a relatively large number of emails indicating an interest in this topic. Due to this interest, I wanted to spend this month covering Meteor, which is a relatively unique JavaScript platform, and has also been the focus of my own learning for the last 5 or so weeks. What is so unique about Meteor? Meteor is unique in the fact that it is both a JavaScript server (like NodeJS), but also ties into the client side, so the application you write exists on both the server and the client. This brings with it an array of performance enhancements, and some security concerns (which can generally be avoided by following Meteor’s best practices). It’s also deeply integrated with Cordova and Phonegap, meaning you can easily create native Android and iOS apps from the finished web app. The nature of the platform is to be reactive (changes are seen instantly, without a refresh - similar to AngularJS), and offers plenty of useful features. To find out more, check out their website (link in Further Reading).

Au cours de l'année écoulée, j'ai écrit de nombreux articles C&C au sujet du développement Web (des frameworks JavaScript aux pré-processeurs CSS). J'ai été surpris de recevoir un assez grand nombre de mails manifestant un intérêt pour le sujet. Par conséquent, ce mois-ci je voulais traiter de Meteor, une plate-forme JavaScript assez unique, que j'apprends moi-même depuis environ cinq semaines.

Qu'est-ce qui rend Meteor unique ?

Meteor est unique par le fait qu'il est à la fois un serveur JavaScript (comme NodeJS), mais est relié aussi au côté client ; ainsi, l'application que vous écrivez existe à la fois sur le serveur et sur le client. Cela augmente aussi les performances, dans de nombreux secteurs, mais génère quelques problèmes sécuritaires (qui peuvent généralement être évités en respectant les pratiques optimales de Meteor).

Il est également profondément intégré à Cordova et à Phonegap, ce qui veut dire que la création d'applis natives Android et iOS, à partir de l'appli Web finie, est très facile. La plate-forme, par nature, est très réactive (vous voyez des changements instantanément, sans rafraîchir la page, comme c'est le cas pour AngularJS) et elle propose plein de fonctionnalités utiles. Pour plus de détails, regarder leur site Web (le lien se trouve dans la section Pour aller plus loin).

What about the downsides? As both the server-side and client-side are JavaScript, the page will render absolutely nothing if the browser has JavaScript disabled. You could output some sort of notice using a set of <noscript> tags in the html’s <head> tags, but if ostracizing anyone who has JavaScript disabled doesn’t work for you, Meteor will not be for you (at least, not without various hacks, if it’s even possible). That’s the benefit to something like Angular - depending on how you use it, visitors who don’t allow JavaScript will at least see the majority of the normal HTML, even if it’s not very pretty. In this day and age, the question is simply how many visitors will have disabled JavaScript. In the matter of SEO - Google definitely updated their bots for JavaScript pages, but I’m unsure of Yahoo or Bing. Checking this before developing might be useful. That being said, there is a plugin called Spiderable that uses PhantomJS to create static HTML, and send it to spiders (search engine crawlers). Perhaps this approach could be adapted for visitors with javascript disabled, though it does not appear to have been attempted anywhere.

Quid des inconvénients ?

Puisque les deux côtés, serveur et client, sont en JavaScript, la page ne donnera strictement rien si JavaScript est désactivé sur le navigateur. Vous pourriez sortir une quelconque notification avec un ensemble de balises <noscript> dans les balises <head> du html, mais, si vous ne souhaitez pas marginaliser quiconque a désactivé JavaScript, Meteor ne vous conviendra pas (au moins, sans tenter divers trucs et uniquement si c'est possible). C'est l'avantage d'un logiciel comme Angular ; selon votre façon de l'utiliser, les visiteurs qui interdisent JavaScript verront au moins la plupart du HTML normal, même si ce ne sera pas très joli. Aujourd'hui, la question est tout simplement : combien de visiteurs auront désactivé JavaScript ? Pour ce qui concerne la SEO (Search engine optimization ou Optimisation du moteur de recherche), Google a mis à jour ses bots pour des pages JavaScript, mais je ne sais pas pour Yahoo ou Bing. Avant de développer, ce serait sans doute utile de le vérifier.

Cela étant dit, il y a un greffon appelé Spiderable qui se sert de PhantomJS pour créer de l'HTML statique et l'envoyer aux « spiders » (littéralement des araignées, autrement dit des crawleurs de moteurs de recherche). Cette approche pourrait s'adapter sans doute aux visiteurs qui ont désactivé le JavaScript, bien que, à ma connaissance, cela n'ait jamais été tenté.

When should I use Meteor? Technically, you can use Meteor at any time. However, most of the plugins and sites I’ve seen that use Meteor are geared at heavy interactive sites or complete web applications. If you’re planning on creating a small static or semi-static web page, you may want to carefully weigh the pros and cons. That being said, Meteor’s own page is naturally created in Meteor. Depending also on what tools you’ve currently been using - Ruby on Rails, or Node.JS, switching to Meteor may be a welcome trade-off, as development with Meteor is extremely quick. I’m intrigued - where can I learn more? The Meteor homepage has a nice tutorial for getting started. There are also various tutorials on YouTube and the web. If you’re looking for books, I can recommend Discover Meteor (by Tom Coleman and Sacha Greif), whose authors are both active Meteor developers. Hopefully this article will be helpful to some - especially those who love to tinker with new frameworks. If you have any questions, issues, or requests, please let me know at lswest34+fcm@gmail.com. As always, I’m also open to requests for future articles.

Quand faut-il utiliser Meteor ?

Il est possible d'utiliser Meteor n'importe quand. Toutefois, la plupart des greffons et des sites que j'ai vus qui utilisent Meteor ciblent des sites très interactifs ou des applications Web entières. Si vous projetez de créer une petite page Web statique ou semi-statique, vous devrez peser les avantages et les inconvénients. Cela étant dit, la propre page de Meteor est tout naturellement créée avec Meteor.

Et aussi, selon les outils que vous utilisez actuellement - Ruby on Rails ou Node.JS - changer pour Meteor peut être un bon compromis, puisque faire du développement avec Meteor est extrêmement rapide.

Je suis curieux, où pourrais-je en apprendre davantage ?

La page d'accueil de Meteor a un bon tutoriel pour démarrer. Il y a aussi divers tutoriels sur YouTube et le Web. Si vous cherchez des livres, je recommanderais Discover Meteor (de Tom Caleman et Sacha Greif), dont les auteurs étaient des développeurs Meteor actifs.

J'espère que cet article sera utile pour certains, surtout pour ceux qui aiment bricoler avec de nouveaux frameworks. Si vous avez des questions, des problèmes ou des requêtes, prière de m'écrire à lswest34+fcm@gmail.com. Comme toujours, je suis également ouvert à des demandes pour de futurs articles.

Further Reading https://www.meteor.com/ - Meteor Homepage http://www.telescopeapp.org/ - A social framework built in Meteor

Pour aller plus loin

https://www.meteor.com/ - la page d'accueil de Meteor.

http://www.telescopeapp.org/ - un framework social construit avec Meteor.

issue97/c_c.txt · Dernière modification : 2015/06/15 07:49 de d52fr