Express revendique clairement sa filiation avec Sinatra pour Ruby.
Et c'est vrai que l'analogie est frappante :
Coté Sinatra :
Au delà de cette simple comparaison, Sinatra et Express appartiennent bien à la même famille des DSL dans le domaine d'application de la couche WEB.
1) Le domaine d'application de Sinatra.
Sinatra permet offre un langage de manipulation de la couche web middleware. Ruby possède une couche middleware très puissante appelée Rack.
Rack permet de faire le lien entre une requête HTTP entrante (url, méthode et parametre) et des objets Ruby. Il est possible d'agencer à sa guise la pile de traitement d'une requete WEB.
Sinatra offre un langage permettant de travailler directement avec ces couches.
2) Le domaine d'application d'Express
Express tout comme Sinatra permet de manipuler facilement le middleware pour Node.js appelé 'connect.js'.
Express ne fournit pas directement un DSL comme dans Sinatra. Il permet en revanche de réaliser très facilement pour Node.js des applications WEB en mode MVC.
3) Les deux modes d'utilisation de Sinatra.
Sinatra fonctionne sous deux modes:
Le mode 'classique'
L'application tient dans un fichier et elle est écrite avec le DSL.Le mode modulaire.
L'application peut être répartie dans plusieurs fichiers. Il est possible d'avoir plusieurs applications pour un seul interpréteur Ruby actif. En revanche on ne pourra pas faire appel directement au DSL, il faudra passer par des méthodes.
Aucun mode n'est meilleur que l'autre. C'est vraiment deux usages différents. Dans les deux cas, le développeur pourra intervenir sur l'agencement de la couche middleware.
Dans les deux modes, il est possible et recommandé d'isoler les vues dans des sous-répertoires.
4) Les deux mode d'utilisation d'Express
Express lui aussi propose deux usages.
Le mode simple
Comme pour Sinatra, l'application tient dans un fichier et liste les actions à mener pour chaque url.
Ici un exemple en coffeescript.
Le mode MVC
Un appel à la commande express 'mon_appli' génère une arborescente qui ressemble à celle d'une grosse application Sinatra.
Dans les deux modes, le développeur garde la possibilité de modifier la couche middleware.
En conclusion: Sinatra est a réserver pour les petite applications, après il vaut mieux passer à Rails.
Express, lui prend en charge tout l'aspect serveur WEB (cache , session ) qui n'existe pas en l'état dans Nodes.js Express sert souvent de base pour d'autres frameworks.
je prépare une série de vidéos sur le thème d'express, rendez vous sur twitter.
Aucun commentaire:
Enregistrer un commentaire