IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

JSLint / JSHint


Sujet :

JavaScript

  1. #1
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 966
    Points
    3 966
    Par défaut JSLint / JSHint
    Bonjour à tous

    Utilisez vous ces outils dédiés à la qualité du code js ? JSLint ou JSHint

    lequel des 2 ? ou un autre ?

    Si oui comment, et si non pourquoi ?

    Je compte passer cet outil sur l'ensemble des scripts js de mon appli, via le plug-in Notepad++.

    Mes premiers essais sur un fichier me font constater que je passe de 51 erreurs avec JSLint à 1 erreur avec JSHint Sacré différence tout de même !

    Du coup je serais curieux de savoir ce que d'autres font de ce genre d'outils ?

  2. #2
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    JSHint (Anton Kovalyov) est un dérivé de JSLint (Douglas Crockford). Ce dernier se veut "pointilleux" au plus haut point et applique les convention à la lettre ! Le premier a été créé dans le but d'accorder plus de souplesse, les warnings de JSLint étant parfois tiré par les cheveux (troll ? ).

    Certains disent que JSLint a un peu dérivé de son but de base qui était : "J'aide les développeurs à ne pas faire d'erreurs de code" à "Il faut coder comme Douglas Crockford".

    Exemple rapido :
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for ( var toto in tata ) {
      // faire qqchose
    }

    JSLint ne va pas te laisser continuer car, pour lui, il faut déclarer var toto avant. En plus, ce n'est pas paramétrable !

    JSHint accorde plus de souplesse et continue. Dans un sens, je comprends JSLint, mais quand tu as plusieurs boucles dans une même fonction, j'aime pas voir toutes mes variables déclarées en haut (bien que c'est ce qui se passe à l'interprétation et peut être source d'erreur).

    J'ai aussi abandonné JSLint au profit de JSHint qui est moins contraignant et accorde plus de souplesse donc.
    Après c'est un choix, et c'est bien que JSHint soit sorti pour proposer une alternative.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2007
    Messages
    128
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2007
    Messages : 128
    Points : 210
    Points
    210
    Par défaut
    J'ai utilisé JSLint pendant 4 ans, et au fur à mesure de son évolution il est devenu de plus en plus strict sur des points complètement délirants.

    A la fin je tournais sur une version vieille de 2 ans car les plus récentes étaient juste grotesques. Je suis passé sur JSHint le mois dernier et c'est vraiment une libération.

    Je le recommande chaudement.

  4. #4
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    J'ai testé les deux et les deux sont beaucoup trop stricts à mon goût. Personnellement je ne trouve pas que la qualité de code soit impactée par l'absence d'accolades ou de points virgules non nécessaires, ou le non-respect d'une quelconque convention de nommage. Les problèmes de conception de plus haut niveau sont bien plus impactants, et ceux-là JSHint les laisse de côté.

  5. #5
    Membre actif

    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    183
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 183
    Points : 274
    Points
    274
    Par défaut
    Ouais, enfin lors de la concaténation et la minification du code, tu fais kikoo lol mdr quand tu oublie ce genre de chose.
    Pour les accolades, ça fait 8 ans que j'écris du JS, et au final, je trouve plus lisible de coller des accolades même pour une seule ligne. Ca évite les kikoololeries .
    Et les ; ben faut pas les oublier, car sinon, LOL lors de la minification

  6. #6
    Rédacteur/Modérateur

    Avatar de SylvainPV
    Profil pro
    Inscrit en
    Novembre 2012
    Messages
    3 375
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2012
    Messages : 3 375
    Points : 9 944
    Points
    9 944
    Par défaut
    L'argument "kikoolol" est un peu subjectif pour moi Ca fait aussi 8 ans que j'écris du JS et je ne vois pas en quoi rajouter des accolades sur une ligne change quoi ce soit à la lisibilité. C'est clairement une question de goût, alors maintenant j'aimerais que JSHint me laisse le choix et qu'on me colle pas un warning pour ça.

    Quant aux points virgules facultatifs, avec un minifieur de qualité ça ne pose aucun souci. Testé avec Closure compiler.

  7. #7
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Idem que Sylvain. J'utilise Closure Compiler, et aucun soucis.

  8. #8
    Membre extrêmement actif
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    1 616
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 616
    Points : 3 966
    Points
    3 966
    Par défaut
    hé hé

    Bon d'abord j'ai abandonné JSLint faut être maso pour utiliser ce truc

    alors juste pour le fun, j'ai passé jshint sur les jquery et jqueryui version minified. "Too many errors" à chaque fois. Même les versions nromales ne sont pas exemptes d'erreurs
    Un truc comme dynatree semble bien écrit dans l'ensemble, ils doivent utiliser un outil qualité. La version minified génére elle aussi trop d'erreurs

    Je soupçonne les "minifiers" de supprimer quelques ";" tout de même.

    Bon et dans l'ensemble pour l'instant je m'en sors pas trop mal sur mes propres codes, avec JSHint

    2-3 remarques sur des fonctions me paraissent utiles, et quand je consulte la ref mozilla, je retrouve les mêmes recos.

    Pour ma part, j'avance avec ces outils

  9. #9
    Membre émérite
    Avatar de Kaamo
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Points : 2 778
    Points
    2 778
    Par défaut
    Un site intéressant (en anglais) qui explique pourquoi JSLint ou JSHint interprète tel ou tel bout de code en erreur et apprend comment éviter ces erreurs.

Discussions similaires

  1. Vérifier votre code en ligne grâce à JSLint
    Par FirePrawn dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 13/10/2012, 23h59
  2. [Hudson] jslint et viloations
    Par danathane dans le forum Intégration Continue
    Réponses: 0
    Dernier message: 03/05/2011, 16h14
  3. erreur signalée par jslint sur boucle for in
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 02/07/2010, 15h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo