51Fermer53
BrunniLe 29/03/2015 à 21:06
Perso je fais du coffeescript au boulot et la concision ajoute des tas et des tas de fautes possibles, parce que syntaxiquement tout est valable, mais l'effet après…
Par exemple tu peux supprimer les parenthèses pour les appels de fonction, et en admettant que tu as 2 fonctions add(a, b, callback) et sub(a, b), si tu écris ceci :
a = add 10, 20, (err, result)->
    console.log result

Ca marche bien, mais maintenant chaînes-y une opération sans faire gaffe :
a = add 10, sub 20, 10, (err, result)->
    console.log result

Ca va compiler mais potentiellement péter au runtime (en fait t'en sais rien parce que le javascript est super permissif, mais t'auras pas le bon résultat en tous cas) puisque le callback est passé à sub. Là ça paraît assez évident, mais c'est en pratique facile de l'oublier, et si tu n'as pas 100% de test coverage tu mettras vraiment de la merde en prod (ce n'est pas rare d'avoir 3+ bugs graves -- genre ça te pète le process en cours de traitement d'une requête HTTP à cause d'une exception imprévue -- par ligne de code coffeescript !).