Linting est un type d’analyse statique du code pour identifier les erreurs potentielles de la base de code. Les linters analysent le code à la recherche d’erreurs de syntaxe et de problèmes de style. Ce processus peut aider à prévenir les bogues, à améliorer la lisibilité, à appliquer les meilleures pratiques et à gagner du temps.


Le linting est une pratique standard dans le développement de logiciels. Bien qu’il n’y ait pas de linter intégré dans la bibliothèque standard de Go, de nombreux outils de linting tiers existent dans l’écosystème Go. Il s’agit notamment des paquets GolangCI Lint, Go Meta Linter et Staticcheck.

Le paquet GolangCI Lint

Logo de GolangCI Lint, un spermophile bleu tenant un bouclier sur lequel est dessiné un insecte.

Le paquet golangci-lint est un linter puissant et flexible pour Go qui peut vous aider à identifier et à corriger les erreurs de code. La facilité d’utilisation du paquetage, son extensibilité et l’ensemble complet de linters intégrés en font un choix populaire pour de nombreux développeurs Go.

GolangCI Lint analyse le code source de Go et fournit un retour sur les bogues potentiels, les problèmes de sécurité et les violations du style de codage, avec des fonctionnalités d’analyse haute performance et un support d’intégration continue (CI).

Exécutez cette commande dans le répertoire de travail de votre projet pour installer le paquet Golangci-lint :

 go install github.com/golangci/golangci-lint/cmd/golangci-lint@v1.51.1

Votre version de Go doit être 1.19 ou ultérieure pour que la commande puisse installer le paquet. Vous pouvez également consulter la page des installations de golangci-lint pour connaître les autres méthodes d’installation disponibles.

La commande installera GolangCI sur votre système en tant qu’outil CLI. Vous pouvez vérifier l’installation avec cette commande :

 golangci-lint --version

La commande devrait afficher la version de golangci-lint que vous avez installée.

Configuration du Linter

Les liners sont très polyvalents. Pour installer un linter, vous devez donc le configurer pour votre projet.

Le site golangci-lint utilise des fichiers YAML pour la configuration. Vous spécifierez les paramètres de votre linter dans le fichier YAML pour que le paquet puisse le lire.

Vous pouvez créer un fichier de configuration par défaut à l’aide de cette commande :

 golangci-lint config > .golangci.yml

La commande crée un nouveau fichier nommé .golangci.yml dans votre répertoire courant. Vous pouvez procéder à l’édition de ce fichier pour configurer le linter pour votre projet.

Voici le contenu du fichier .golangci.yml lorsque vous exécutez la commande :

Instruction d'utilisation du fichier YAML de Golangci-lint

Le fichier contient des informations sur le golangci-lint et les options que vous pouvez utiliser pour configurer votre processus de listage.

Vous devrez modifier le fichier pour ajouter les règles de linting pour votre programme. Vous pouvez trouver la liste complète des linters disponibles sur la page de documentation golangci-lint Linters. Ou vous pouvez exécuter la commande help linters pour afficher les linters sur votre ligne de commande :

 golangci-lint help linters

La commande affiche tous les linters disponibles pour la version du paquet que vous avez installée.

résultat de l'exécution de la commande help sur Golangci-lint

Exécution du Linter

Voici une démonstration du linting du programme « Hello, World ! » suivant, qui utilise la méthode de linting de l’utilisateur. net/http paquet :

 package main

import (
    "fmt"
    "net/http"
)

func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, world!")
}

func main() {
    http.HandleFunc("https://www.makeuseof.com/", handler)
    http.ListenAndServe(":8080", nil)
}

Ce programme définit un gestionnaire qui prend en compte les instances de rédacteur et de requête de l’application http Le paquet ResponseWriter et Demande Types de structures. Le site handler écrit « Hello, World ! » au client sur demande.

Le site principal monte la fonction / route vers le handler et la fonction ListenAndServe La fonction ListenAndServe démarre le serveur sur le port localhost 8080.

Le site ÉcouterEtServir renvoie une erreur, mais le programme l’ignore. Cette configuration permettra au linter de mettre en évidence le problème :

 linters-settings:
  deadcode:
    # ignore all test files
    skip-files: "_test\\.go$"
  govet:
    # disable shadowing check
    check-shadowing: false
  golint:
    # ignore errors about exported function names
    exclude-use-default-exported: true

    # ignore errors about underscores in package names
    exclude-useless-naming: true
  gosec:
    # disable gosec tests, since they are slow and can produce false positives
    tests: false
  unused:
    # report unused function arguments, but not unused variables
    check-exported: true
    check-blank: true
    check-tests: true

Après avoir défini cette configuration du linter, vous pouvez exécuter le linter avec la commande exécuter commande :

 golangci-lint run

# equivalent, runs all programs
golangci-lint run ./...

Alternativement, vous pouvez lier des fichiers spécifiques en spécifiant le nom ou le chemin du fichier après la commande exécuter commande :

  golangci-lint run dir1 dir2/... dir3/file1.go 

Voici le résultat de l’exécution du linter contre le programme :

résultat de l'exécution du linter sur un programme http

Le site golangci-lint est polyvalent, et votre configuration variera en fonction de votre projet.

Vous pouvez lier vos projets JavaScript avec ESLint.

Le linting est une tâche populaire de développement de logiciel, et la plupart des langages de programmation et IDEs fournissent des outils pour linting des programmes. Pour JavaScript, ESLint est le linter le plus populaire.

Eslint fournit plusieurs règles de linting qui suivent les normes de l’industrie dans les outils CLI, IDE et éditeur de texte, ce qui fait de cet outil de linting un excellent choix pour les développeurs JavaScript.