
Chargement
Linter

What is going on ?
Pour tester / pour le TD :
•Projet ms-node-server
Les outils utilisés :
•JSHint
La documentation utile / pour aller plus loin :
•Mindsers.blog - Le Linter
•Node JSCS
Usecase
Pourquoi tu utilisesvarau lieu delet?
Elle est utilisée où la fonctioneTestLPforPaymentlol?
Kevin, ptin, t'a oublié le point virgule, il y a tout qui plante !
wtf, c'est quoimanager.jsà la root du projet ??
On est enSnake Case,Camel Case,Pascal CaseouKebab Case?!
But du jeu
Toujours dans l'optique d'améliorer la communication dans l'équipe, le linter permet de vérifier la cohérence du code.
Les principaux points vérifiés par le linter sont les suivants :
•La non utilisation de variables et/ou de fonctions dans le code. Autrement appelé, lecode mort.
•Les bonnes pratiques d'écriture d'un langage, plus communément appeléCoding Style. Par exemple, éviter leobj["foo"] = "bar"au lieu deobj.foo = "bar"enjavascript.
Et bien d'autres points tels queles variables existantes,les doubles déclarations,les erreurs de syntaxe, etc...
LeHow ToavecJSHint
Pour commencer, nous allons utiliserJSHint, outil massivement utilisé en NodeJS.
Commençons par l'installer exeptionnellement en global :
$ npm install -g jshintVous pouvez dès à présent utiliser jshint avec sa configuration par défaut, via la commande :
$ jshint mon_fichierExample :
$ jshint ./server.js
server.js: line 71, col 3, Missing semicolon.
1 errorDans le dossierrootdu projet, nous allons créer un fichier le fichier de configuration.jshintrc(format json).
La configuration :
{
"esversion": 6
}Cette configuration "courante" permet d'accepter l'utilisation de la syntaxe ECMAScript 6.
L'ensemble des options est disponible surhttps://jshint.com/docs/options/.
A vous de jouer !
Ajoutez le linter à la CI du projet !
Plusieurs réflexion à avoir par rapport à l'intégration du linter dans notre process :
• Est-ce une composante importante / de premier ordre pour le développement ?
- Si oui, en faire unjob
- Si non, l'intégrer sous forme d'unestep
• Quelles sont les tolérances à appliquer ?
- Quel est le nombre d'erreurs minimal / maximal ?
- Les warnings sont-ils acceptés ?
• Quels sont les fichiers / dossiers à cibler / éviter ?