@emci: Je peux te passer un tuto où tu va apprendre à renvoyer des fichiers html, gérer tes routes mais à un moment donné ça devient des taches fastidieuses et répétitives, c'est la où le framework Express.js nous facilite la vie.
Non mais d'un côté je comprends la remarque d'emcy. On peut avoir l'impression de mettre la charue avant les boeufs si on montre comment faire un chat avant de faire des pages simples.
Mon souci c'est que Node.js est très concis au niveau de son noyau mais il dispose de tonnes de libs externes. Pourquoi dans ce cas parler de l'un et pas de cet autre module ?
J'ai la volonté de faire un tutoriel court (entre le mini tuto et le big tuto en somme). Je ne veux pas rentrer dans un engrenage qui rende le tuto interminable.
Pour faire une réponse concise : renvoyer une page html en pur node.js, je viens d'expliquer comment le faire dans le tuto. Evidemment c'est pas pratique du tout. Il faut soit créer son framework à bas niveau, soit réutiliser qqc comme express (donc je recommande d'utiliser express en gros).
Je vais voir si je peux parler d'express et de socket.io ensuite, ou si je fais que l'un des deux pour le moment (quitte à compléter un peu plus tard).
Là je viens de finir deux chapitres sur les évènements et les modules (et NPM), je les mettrai en ligne sous peu.
Perso, je verrais bien un truc genre NodeJS + Express (ou Connect) + Mongoose / MongoDB + intégration Ajax/History.js
Je crois qu'Express et Connect ont de nombreux points communs. En présenter un revient à présenter les deux, plus ou moins. Ca laisse le choix aux gens.
NodeJS possède plusieurs milliers de modules, oui mais on se fiche de certains. Pour d'autres, ça peut être vraiment intéressant d'en parler, comme forever qui s'occupe de gérer nodeJS en tache de fond (en relançant le process si crash (à vérifier)), etc.
Perso, j'ai "appris" en lisant bêtement les tutos de http://www.atinux.fr/ + curiosité + bidouillage, et ça s'apprend très facilement (si on maitrises ses serveurs autres qu'Apache).
Je crois qu'Express et Connect ont de nombreux points communs. En présenter un revient à présenter les deux, plus ou moins. Ca laisse le choix aux gens.
En fait Express.js est même basé sur Connect donc il recopie toutes ses fonctionnalités.
Il y a aussi des tutos sur http://naholyr.fr/ . Grâce à lui j'ai pu comprendre certaines choses sur Socket.io
emcy, pour le coup, faut quand même pas abuser. J'ai découvert nodeJS il y a quelques semaines, j'ai tout trouvé sur le net.
Le site d'ExpressJS expose la doc entière, avec plein d'exemples. Si t'as la flemme de lire les docs, on peut rien faire pour toi.
Dans ce cas, pourquoi il y a des gens comme Mateo qui s’embêtent à faire des tutos : autant mettre des liens directe sur les sites officiels au lieu d'écrire des tonnes de pages du tuto "qui ne servent à rien" ...
Perso, je n'ai pas trouvé de tuto correcte en FRANCAIS sur Express
=> avoir un tuto unique qui balaye les principales fonctionnalités du langage + une vue rapide des framework utiles, c'est toujours plus sympa que d'aller chercher à droite et à gauche des bouts de codes ou des mni-tutos sur des site étranger
Même si des ressources existaient (et y'en a surement qui existent) ailleurs, pourquoi est-ce que la rédaction d'un tutoriel ne servirait à rien? L'aspect "de 0" est souvent absent des autres supports, on a droit à l'explication d'un point précis, d'une technique particulière, mais rarement un cheminement construit du début jusqu'à la fin.
Il y a des tonnes de tutos sur html/php et à peu près tout partout sur le net; mais ceux du siteduzéro ont l'avantage de présenter une vue globale de l'élément qu'ils enseignent, ce qui fait leur succès.
Sinon oui, si tu te restreinst au français, tu vas avoir du mal à trouver des ressources, mais on peut rien faire pour toi.
Voilà. J'ai jamais dit que ça servait à rien. Faire ce genre de remarque expose au plein jour ton manque d'analyse (si t'es même pas fichu de comprendre une simple phrase...).
Tu t'es plains de ne trouver aucune doc sur Express, j'ai simplement répondu que le site d'Express se suffisait à lui seul. Faire un tuto SdZ peut-être un plus, peu importe, je n'ai pas abordé le sujet.
emcy a écrit:
un petit tuto sur express m'ira très bien aussi
Il y a une différence entre débutant et assisté. "j'ai pas envie de me forcer à lire anglais, et je suis débutant, alors svp faites moi un tuto simple". Tu veux qu'on t'amène le café aussi ?
Apprendre la prog de zéro, ça veut dire qu'on explique à partir de la base les choses, c'est tout. Ca veut pas dire que n'importe quelle grand-mère de 98ans sera capable de coder Google après avoir lu un tuto. Donc les rédacteurs font l'effort de détailler leurs tutos, ça serait bien que les lecteurs fassent l'effort de faire des recherches annexes. Le SdZ n'est pas là pour tout t'apporter sur un plateau et te filer un diplome d'ingé en sortie !
Le problème avec les documentations, c'est l'anglais.
Elle sont super complètes, surement bien expliquées, il y a surement aussi un petit guide pour débuter ... mais il y a toujours l'anglais. Alors c'est pas très dur l'anglais, mais pour apprendre et comprendre c'est beaucoup plus facile d'avoir du bon français. si on est moyen en anglais, il nous faudrait traduire 156 fois des mots par ci par la pour comprendre la phrase. Du moins la lire, la comprendre c'est autre chose ... (vu que certaines "expressions" anglais sont différentes d'ici). Et puis, ce n'est pas que la doc qui est en anglais, c'est le site entier, les guides, les menus, tout ça. c'est très embêtant ... (5 lignes je dit pas, mais quand c'est des centaines de lignes ...)
Perso, il y aurait des docs en français, je me jetterais dessus et me passerais de tutoriels (ou j'en lirais peu). Malheureusement, les développeurs de frameworks comme ceux-là sont plutôt anglais. (et full-anglais, il ne s'amuserait même pas à recruter un traducteur de telle ou telle langue).
Alors oui, un tuto d'introduction est plutôt nécéssaire.
@Mateo21, une petit remarque personnelle d'ailleurs ... J'ai lu plusieurs de tes cours, notamment HTML5/CSS3 et je suis en train de lire PHP/MySQL. Les cours sont très bon, mais j'ai un peu l'impression que ce n'est pas assez profond. En faite, pas assez de méthodes sont expliquées (rien que 3 lignes sur une méthode avec un exemple, ça prend 2 pages pour 5-7 exemples et tout le monde est content). Si tu pouvais, dans ton cours pour NodeJS dont la difficulté est difficile (pour les livres que j'ai cité précédemment ce n'est pas le même problème, ils sont dédiés au débutant), "attaquer le problème" plus directement. (Si on est censé être à l'aise en javascript, je pense qu'on a une certaine expérience du développement et qu'on peu apprendre avec 3 lignes et un exemple pour un méthode)
- Edité par CappaFlow 26 avril 2013 à 11:34:28
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Les cours sur le SdZ sont plus à vocation d'apprendre les bases à partir de zéro. Il y a très peu de tutoriels qui vont vraiment en profondeur des choses, c'est d'ailleurs pour ça que quand un débutant sort "Je maitrise X langages car j'ai lu les tutoriels sur le SdZ" on lui rit au nez et l'envoie bouler. Je doute donc que m@teo fasse un tutoriel vraiment en profondeur expliquant des choses "vraiment difficiles".
Les cours sur le SdZ sont plus à vocation d'apprendre les bases à partir de zéro. Il y a très peu de tutoriels qui vont vraiment en profondeur des choses, c'est d'ailleurs pour ça que quand un débutant sort "Je maitrise X langages car j'ai lu les tutoriels sur le SdZ" on lui rit au nez et l'envoie bouler. Je doute donc que m@teo fasse un tutoriel vraiment en profondeur expliquant des choses "vraiment difficiles".
Non je ne parle pas de cet profondeur là. Je parle de plus de contenu. Pas plus de techniques qui sont "vraiment difficiles" comme tu dis (comme je ne connais pas suffisamment NodeJS, je peux te parler du cours sur le JavaScript, ils ne parlent pas des techniques "difficiles" comme l'héritage et autres), mais plus de méthodes (de fonctions) pour avoir un large panel de connaissances et ensuite être à l'aise.
Et puis c'est justement parce que ce cours ne pars pas de zéro (comme son "prédécesseur", le cours sur le JavaScript) mais parce qu'il demande des bases solides que je propose ceci.
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Je suis pas d'acc avec capFlow (et donc d'acc avec Nami Doc). L'anglais est indispensable. Regarder un film en VF plutot qu'en VO/VOST, c'est un choix, chacun fait ce qu'il veut (pour son confort).
Mais dire "je lis pas telle ou telle doc parce-qu'elle est en anglais", c'est presque absurde. A ce compte là tu arrêtes l'informatique, et tu te mets au jardinage.
sont plutôt anglais. (et full-anglais, il ne s'amuserait même pas à recruter un traducteur de telle ou telle langue).
La règle veut que les "développeurs" doivent connaître l'anglais :p.
Je suis d'accord mais il y a des limites :
tout le monde n'est pas parfait en anglais
selon les études ... (et le "travail personnel") on n'a pas tous apprit l'anglais jusqu'à être bilingue. (Par exemple, je suis à l'aise en anglais mais je manque de vocabulaire, je suis en plein dans les études (pas en études supérieur, bien avant))
Edit : je ne parle pas de ne pas lire de doc. Je parle de ne pas apprendre à base de doc. J'ai déjà utilisé plusieurs fois une documentation mais pour quelques fonctions, après avoir appris avec un cours français, et c'était long pour certaines d'ailleurs.
- Edité par CappaFlow 26 avril 2013 à 14:29:28
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Même quand les dev d'un outils/framework/n'importe quoi sont français, allemands, la doc est en anglais. C'est le langage international de l'informatique, vouloir faire sans c'est essayer de scier une branche avec une fourchette.
Si vous comptez attendre des ressources en anglais pour vous renseigner sur une technologie / un outil, vous passerez à côté des choses importantes, ou aurez au mieux un sacré retard.
Je suis une véritable catastrophe en anglais, je suis incapable de tenir une conversation de plus de 3 minutes. Ca ne m'empêche pas de coder 100% anglais.
Je prends une phrase au hasard de la doc Express : Bind and listen for connections on the given host and port, this method is identical to node's http.Server#listen().
Honnêtement, il y a besoin d'être bilingue pour comprendre ça ? Autant que pour comprendre ce que signifie true/false/function/while/...
Et au pire, pour les petits paragraphes vraiment techniques et durs à comprendre, un petit coup de google translate, et même si le rendu est dégueu, tu cernes facilement l'idée.
Si c'était en français, il faudrait la moitié ou moins du temps nécessaire pour lire et comprendre cette page.
Et oui on code en anglais. Je développe aussi en mettant un maximum de mots anglais. Mais c'est des mots rudimentaires, on n'écris pas non plus des phrases.
Mettez moi devant une documentation C en anglais et dites moi d'apprendre. J'abandonne au bout de 30 minutes voir moins. En français, ça passerait beaucoup mieux. (n'oublions pas le guide d'introduction, c'est impossible sinon, à vu d'oeil le C est un gros morceau)
Je partage donc votre avis, mais on a un point de vue légèrement différent. Je ne pense pas que ce soit utile de continuer le débat, personne n'arrive à faire comprendre à l'autre ce qu'il pense j'ai l'impression
- Edité par CappaFlow 26 avril 2013 à 15:18:19
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
J'utilise effectivement cette doc NodeJS, tout comme j'utilisais la MSDN pour les winAPI, tout comme j'utilise la Javadoc pour Java, etc. Ratée, ton argumentation.
Je suis assez agacé de lire des trucs genre "tu me mets devant une doc C en anglais, je lache au bout de 30 minutes". Ben tant pis pour toi, ça signifie que tu n'es pas fait pour être informaticien, change de filière. L'info (et encore, je reste très (trop) large), c'est un METIER. Le problème, c'est que de nos jours, le webdev se démocratise tellement que n'importe quel gosse de 12 ans se sent capable de créer son site Web. Alors OK, des sites comme le SdZ sont là pour les aider à mieux comprendre sans avoir un BAC+3, mais ça n'enlève pas le fait que ça reste un METIER. Si t'as pas la fibre, que tu piges pas un mot d'anglais ou que tu n'utilises que des mots rudimentaires (parce-que je suis désolé, quand tu bosses sur un gros projet, tes commentaires sont censés être bourrés de phrases... en anglais), ben tu fais autre chose, voilà tout.
Moi j'ai essayé la mécanique, j'ai rien compris ça m'a gonflé. J'ai pris sur moi, et j'ai abandonné.
Bref, il n'y aucun débat. Faire de l'informatique = s'engager à utiliser / pratiquer l'anglais pour tout (code, commentaire, doc, forum, ...). T'es pas d'accord, ben tu as tort, c'est tout.
Au pire, tu fais du Windev, et personne ne t'emmerdera avec l'anglais
Il faut justement garder à l'idée qu'on est sur le Site du Zero.
D'après ce que j'ai compris tu as de l'expérience ... donc ça me parait assez normal qu'aujourd'hui tu sois à l'aise avec les docs.
Tu as essayé la mécanique ? Est-ce que tu as de suite commencé avec des manuels en anglais ? Je parle de mécanique comme toi mais je pourrai aussi parler d'électronique ou même de cuisine (encore la cuisine ça peut passer).
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Sinon pendant que vous vous tapiez dessus pour savoir s'il fallait ou non lire des docs en anglais, j'ai publié 2 nouveaux chapitres dans le tuto Node.js sur les évènements et les modules.
Je ne tiens pas à prendre part au débat mais je confirme qu'une lecture des docs en anglais est obligatoire pour avancer correctement ensuite. Je ne rirais pas au nez pour autant d'un développeur qui me dirait avoir appris ceci et cela sur le Site du Zéro. Je le prendrai au sérieux, à condition de tester bien sûr un peu son niveau.
J'ai vu que vous parliez de l'hébergeur NodeJitsu. Je l'utilise depuis quelques mois et ça fonctionne très bien, il arrive que ça plante de temps à autres mais pour 3 euros par mois c'est plutôt solide. De plus, il est gratuit pendant un mois en version test.
Mateo21 a écrit:
Je ne tiens pas à prendre part au débat mais je confirme qu'une lecture des docs en anglais est obligatoire pour avancer correctement ensuite.
Notamment pour les packages npm qui sont présenter sur le site officiel Node.js et sur github avec des exemples de codes.
Concernant le tuto, je pense que les packages Express, Socket.io et les bases de données NoSQL (moogoDB par exemple) méritent d'être étudiés.
Perso, je verrais bien un truc genre NodeJS + Express (ou Connect) + Mongoose / MongoDB + intégration Ajax/History.js
Je ne vois pas trop ce que History.js ferait dans un tutoriel node.js !
Sans doute parce-que tu n'as pas lu mon commentaire en entier :
uaip a écrit:
Je parle de History.js parce-que tous les liens que je trouve sur les sites fullAjax restent sur le concept de l'escaped fragment de Google, et très peu d'API History, et encore moins de History.js (ou autre surcouche). Du coup, je pense qu'il peut y avoir une réelle valeur ajoutée.
History.js n'est qu'un exemple, mais l'important est de montrer comment gérer le fullAjax coté serveur (or la méthode est différente selon l'algo choisi (surcouche de l'API, History, escaped fragments, simples ancres, ...)
A ce que je sache, History.js n'est en rien un module serveur, ce n'est que du client. Donc un site web full ajax, qu'il y ait du node.js ou du php derrière, c'est pareil.
Donc je ne vois pas pourquoi dans un tutoriel spécifique node.js on parlerait d'un truc qui traite de la navigation dans les sites de manière générale
Edit: En réponse à ton message du dessous uaip, car il semble que je pollue le topic (Discuter du contenu d'un tuto Node.js sur un topic sur "Tuto NodeJS", je sais c'est mal vu) : Comme à ton habitude tu es toujours aussi antipathique et inbuvable. Apprends à prendre les remarques sans péter de travers à chaque fois -_-.
Et oui merci je sais que node.js et PHP ne sont pas plus comparable que ça, j'ai juste fait une simplification.
Je sais également que tu n'as pas dit que History.js est coté serveur, je n'ai moi-même jamais dit que tu l'as dit. C'est juste pour appuyer mon argument que ça ne concerne pas node.js.
Enfin, je n'avais pas compris désolé que tu pouvais laisser des commentaires, mais qu'on ne pouvait pas te les contester, désolé, oh grand uaip.
Je n'ai jamais dit que History.js était un module serveur, alors si tu viens polluer un topic, s'il te plait, fais le correctement, avec des remarques sensées.
Tu compares PHP qui est un langage de script avec nodeJS qui est un serveur Web. Rien à voir.
Je ne connais pas les frameworks PHP qui peuvent peut-être implémenter du routage, mais ça reste dégueu vu qu'il est bien mieux de dédier ça à la couche basse et donc au serveur Web (Apache/Nginx/...). Donc si tu affirmes que modifier la conf Apache et mapper des routes GET en JS, c'est la même chose, hm... je ne vois aucune raison de continuer à discuter avec toi.
Je le répète une deuxième fois (il n'y en aura pas de troisième), l'implémentation coté serveur du fullAjax dépend de la méthode utilisée coté client.
- Si tu utilises uniquement l'escaped fragment, il faut gérer 2 cas coté serveur (ressources réelles + snapshots).
- Si tu utilises l'API History, il faut traiter 3 cas (ressources réelles + snapshots + fallbacks HTML4).
- Si tu utilises une surcouche (comme History.js que j'ai cité comme simple exemple), il ne faut gérer qu'un cas (ressources réelles = snapshots = fallbacks HTML4).
Bref, s'il y a encore un truc que tu ne comprends pas, tu installes nodeJS et un serveur PHP, tu crées 2 versions d'un site fullAjax en parallèle avec pour chacune d'elles les différents cas ci-dessus, et tu comprendras par toi-même que ça ne se code pas (du tout) de la même manière.
Je commence à être agacé de toujours devoir me justifier après que mes commentaires soient sans arrêt remis en question.
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
Je vous ai aidé ? Appuyez sur le bouton "Ce message est utile", avec le pouce levé vers le haut ! (en bas à gauche de mon message)
If you'd like to join us, read "How do we work at OpenClassrooms"! :)
Ma vraie biographie - Ex-Manager de la Validation sur le Site du Zéro - sdlm.be - Horus.aero