Recherche de site Web

Lint Your Go Programmes avec le package GolangCI Lint


Un linter peut vous aider à nettoyer votre code et à découvrir les bugs sournois qui s'y cachent. Utilisez ce package de peluchage spécifique pour de meilleurs programmes Go.

Le linting est un type d'analyse de code statique permettant d'identifier les erreurs potentielles de base de code. Les Linters analysent le code pour détecter les erreurs de syntaxe et les problèmes de style. Le processus peut aider à prévenir les bogues, à améliorer la lisibilité, à appliquer les meilleures pratiques et à gagner du temps.

Le linting est une pratique courante dans le développement de logiciels. Bien qu'aucun linter ne soit intégré à la bibliothèque standard de Go, de nombreux outils de linter tiers existent dans l'écosystème Go. Ceux-ci incluent les packages GolangCI Lint, Go Meta Linter et Staticcheck.

Le package GolangCI Lint

Le package 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, l'extensibilité et l'ensemble complet de linters intégrés du package en font un choix populaire pour de nombreux développeurs Go.

GolangCI Lint analyse le code source Go et fournit des commentaires sur les bogues potentiels, les problèmes de sécurité et les violations de style de codage avec des fonctionnalités d'analyse hautes performances et de prise en charge de l'intégration continue (CI).

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

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

Votre version Go doit être 1.19 ou ultérieure pour que la commande installe le package. Vous pouvez également consulter la page d'installation 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 doit afficher la version de golangci-lint que vous avez installée.

Configuration du Linter

Les linters sont très polyvalents, donc pour installer un linter, vous devrez configurer le linter pour votre projet.

L'outil 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 package soit lu.

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 actuel. Vous pouvez procéder à la modification de ce fichier pour configurer le linter pour votre projet.

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

Le fichier contient des informations sur l'outil golangci-lint et les options que vous pouvez utiliser pour configurer votre processus de référencement.

Vous devrez modifier le fichier pour ajouter les règles de peluchage pour votre programme. Vous pouvez trouver la liste complète des linters disponibles sur la page de documentation de 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 package que vous avez installé.

Exécuter le Linter

Voici une démonstration du peluchage du message « Hello, World ! » programme qui utilise le package net/http :

package main
import (
    "fmt"
    "net/http"
)
func handler(w http.ResponseWriter, r *http.Request) {
    fmt.Fprintf(w, "Hello, world!")
}
func main() {
    http.HandleFunc("/", handler)
    http.ListenAndServe(":8080", nil)
}

Ce programme définit une fonction de gestionnaire qui prend en compte les instances d'écriture et de requête des types de structure ResponseWriter et Request du package http. . La fonction handler écrit « Hello, World ! » au client sur demande.

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

La fonction ListenAndServe renvoie une erreur, mais le programme l'ignore. Cette configuration garantira que le linter met 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 de linter, vous pouvez exécuter le linter avec la commande run :

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

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

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

Voici le résultat de l'exécution du linter sur le programme :

L'outil golangci-lint est polyvalent et votre configuration varie en fonction de votre projet.

Vous pouvez Lint vos projets JavaScript avec ESLint

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

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

Articles connexes: