8795 sujets

Développement web côté serveur, CMS

Bonjour,

Je m'intéresse depuis quelque temps au Javascript côté serveur avec Node.js et je me demandais si certains avaient pu tester (pour le divertissement ou en production) et avoir leurs impressions. Également, quelques questions peut-être un peu plus pointues :

- Comment est la séparation application / templates (c'est comme du PHP ou la distinction est forte comme quand on l'exécute côté client ?)

- Au niveau de performance, ça a du bon ?

- La mise en ligne de telles applications est-elle très compliqué / coûteuse ? J'imagine que ça prend un serveur (ou service de cloud comme Heroku et cie) pour s'en servir ? Pas moyen d'installer sur des serveurs partagés ou node.js cohabitera avec Apache ?

Merci !
J'ai eu l'occasion d'expérimenter Node.JS lors d'un petit projet interactif.

Tout d'abord il faut garder à l'espris de Node.JS est une technologie encore jeune et qu'il n'y a encore à l'heure actuelle aucune version finalisée qui puisse être déployée en production chez un client par exemple. Où en tout cas c'est à ses risques et périls Smiley cligne

Pour en revenir à mon expérience de la chose c'est une techno très intéressante si tu cherche à faire une application collaborative avec des interactions multi-utilisateurs en temps réel.
Je repense par exemple à cette démo de Google pour présenter leur API WebAudio : http://labs.dinahmoe.com/plink/ (et qui utilise Node)

Toute cette partie repose sur l'utilisation des sockets par Node, mais cette technologie est utilisable par à peu près tous les langages pour peu que la configuration de ton serveur le permette.

L'un des intérêt de Node est également son fonctionnement non-bloquant. Je ne vais pas te décrire ici ce que cela signifie alors que c'est expliqué sur le site officiel (http://nodejs.org/) Smiley cligne


Concernant des question :

- Par défaut, Node est uniquement un serveur web côté serveur permettant d'exécuter du javascript. Et comme tous les langages, l'organisation de ton projet dépendra des librairies utilisées.
Je te conseille le framework Express pour NodeJS apportant une architecture MVC et de routing complète.
Pour les templates il existe le module Jade.
Et pour le model tu peux utiliser Redis (par défaut dans Express je crois), ou opter pour un implémentation de NoSQL comme Mongoose pour MondoDB par exemple.

Comme tu peux le voir Node.JS repose sur un grand nombre de modules lui ajoutant bon nombres de fonctionnalités et c'est d'ailleurs l'un des points qu'il en fait ça force, mais aussi sa faiblesse. En effet, comme je le disais, ce projet est encore jeune et il y a une floriture de modules développés par la communauté et qui ne sont pas toujours stables ou pas/plus maintenus.
Il est donc important de réfléchir au choix des modules que tu utiliseras dans ton projet.
À noter que Node implémente nativement de plus en plus de fonctionnalités, dont certains modules indépendant à la base et maintenant associés nativement.


- Côté performances je ne saurai pas vraiment te dire, n'ayant pas eu l'occasion de procéder à des stress test. Mais tu trouveras aisément des testes à ce sujet sur Google. Enfin pour ma part ça m'avait l'air aussi performant que du PHP.

- Pour la mise en application ça va surtout dépendre de ton serveur. Dans un premier temps il faut pouvoir installer Node sur le serveur. Exit donc les serveurs mutualisés. Même problème si tu veux utiliser les sockets (à noter l'excellent module socket.io pour simplifier la gestion de ces derniers (également utilisable dans n'importe quelle application javascript côté client)).
Sinon n'importe quel serveur dédié ou virtuel fera l'affaire tant que tu t'adapte à la monté en charge.
Pour la cohabitation, Node.JS et Apache peuvent très bien s'entendre pour peu qu'ils aient chacun leur propre port d'attribué.


Pour en savoir plus je t'encourage à te tourner vers la vidéo d'introduction sur le site officiel et qui est une très bonne présentation, démonstration et initiation à la chose. Smiley cligne