Profile cover photo
Profile photo
Nicolas Chambrier (naholyr)
421 followers -
Expert technique, développeur Node, formateur
Expert technique, développeur Node, formateur

421 followers
About
Nicolas Chambrier (naholyr)'s posts

Post has attachment

Post has attachment

Post has attachment

Post has attachment
Nicolas Chambrier (naholyr) commented on a post on Blogger.
Quand je vois que le refactoring proposé rend le code plus long ET moins lisible, je me dis qu'il y a eu un loupé quelque part ;)

En l'occurrence le code 1 était concis et clair car les services faisaient simplement le job. Il semble donc que la morale soit plutôt d'écrire des services bien complets pour alléger le code du contrôleur.

Après s'il y a encore beaucoup de duplication entre des contrôleurs, il faut peut-être se pencher sur une directive. 

Post has attachment
Nicolas Chambrier (naholyr) commented on a post on Blogger.
Sinon tu pouvais lire le README de Q ;P section "combination" → https://github.com/kriskowal/q#combination

Traitements en séries (promise.then) vs traitements en concurrence (Q.all).

Post has attachment
Nicolas Chambrier (naholyr) commented on a post on Blogger.
Tout ça manque cruellement de concurrence :) Q.all fera ça très bien :

Q.all([
  'monfichier1.txt',
  'monfichier2.txt',
  'monfichier3.txt'
].map(readFile))
.then(function (contents) {
  console.log(String(Buffer.concat(contents)))
})
.catch(function (err) {
  console.error(err)
})


Et ça manque aussi un peu de bonne foi, le code asynchrone par callback n'étant pas obligé d'être dégueulasse, il a aussi droit à son control flow via la librairie "async" qui ici donnerait ça :

async.map([
  'monfichier1.txt',
  'monfichier2.txt',
  'monfichier3.txt'
], fs.readFile, function (err, contents) {
  if (err) return console.error(err)
  console.log(String(Buffer.concat(contents)))
})


Tout à coup la différence n'est plus si grande ;)

Post has attachment
Un tour d'horizon des méthodes de mise en production d'une application Node.js, et un focus sur une solution intéressante : Passenger (utilisé depuis longtemps dans le monde Ruby).
Wait while more posts are being loaded