0Pricing
Go Academy · Leçon

Modules Go avec go mod

Initialiser des modules, go.mod et go.sum

Modules Go avec go mod est une leçon Go Academy gratuite sur CoddyKit. Ceci est la leçon 2 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Go Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Go Academy comprend 4 leçons au total.

Qu’est-ce qu’un module Go ?

Un module est un ensemble de paquets Go contenant un fichier go.mod à sa racine. Dans Go, les modules constituent l’unité de distribution et de gestion des versions du code :

// go.mod — created with: go mod init github.com/myuser/myapp
module github.com/myuser/myapp

go 1.21

require (
    github.com/gin-gonic/gin v1.9.1
    golang.org/x/sync v0.5.0
)

go mod init

Initialisez un nouveau module avec go mod init :

# In project directory:
go mod init github.com/myuser/myapp

# This creates go.mod:
# module github.com/myuser/myapp
# go 1.21

# The module path is the canonical import path prefix
# for all packages in this module

go.sum — Vérification de l’intégrité

go.sum enregistre les sommes de contrôle cryptographiques de toutes les dépendances. Ne le modifiez jamais manuellement : les commandes Go le gèrent :

# go.sum example entries:
github.com/gin-gonic/gin v1.9.1 h1:4idEAncQnU5cB7BeOkPtxjfCSye0AAm1R0RVIqJ+Jmg=
github.com/gin-gonic/gin v1.9.1/go.mod h1:hPrL7YrpYKXt5YId3A/Tnip5kqbEAP+KLuI3SUcPTeU=

# Commit go.sum to version control — it ensures reproducible builds

go get — Ajouter des dépendances

Utilisez go get pour ajouter ou mettre à jour des dépendances. Cette commande met à jour go.mod et go.sum :

# Add latest version
go get github.com/pkg/errors

# Add specific version
go get github.com/pkg/errors@v0.9.1

# Upgrade to latest patch release
go get -u=patch github.com/pkg/errors

# Remove unused dependency from go.mod
go mod tidy

go mod tidy

go mod tidy ajoute les exigences manquantes et supprime les exigences inutilisées de go.mod et go.sum. Exécutez cette commande après avoir modifié les importations :

# After adding/removing imports:
go mod tidy

# What it does:
# 1. Adds any missing module requirements
# 2. Removes requirements for packages no longer imported
# 3. Updates go.sum with needed checksums
# 4. Best practice: run before committing

Gestion des versions de module avec Semver

Les modules Go utilisent le versionnement sémantique. Les versions majeures >= 2 nécessitent un suffixe de chemin :

// v1: github.com/pkg/errors
import "github.com/pkg/errors"

// v2+: module path includes major version
import "github.com/foo/bar/v2"
import "github.com/foo/bar/v3"

// go.mod:
// require github.com/foo/bar/v2 v2.3.1

go mod vendor

Le mode fournisseur copie toutes les dépendances dans un répertoire local vendor/ pour permettre les compilations hors ligne :

# Copy deps to vendor/
go mod vendor

# Build using vendor/
go build -mod=vendor ./...

# Useful for:
# - Air-gapped environments
# - Reproducible CI builds without network
# - Code review of dependencies

Directive replace

La directive replace dans go.mod remplace un module par un chemin local ou une autre version — ce qui est utile pour le développement local :

module github.com/myapp

go 1.21

require github.com/mylib v1.0.0

// Use local fork during development:
replace github.com/mylib => ../mylib

// Replace with a specific version:
// replace github.com/mylib v1.0.0 => github.com/myfork v1.0.0

go env GOPATH et GOMODCACHE

Principales variables d’environnement pour les modules Go :

# Module cache location (default: ~/go/pkg/mod)
go env GOMODCACHE

# Proxy for downloading modules (default: proxy.golang.org)
go env GOPROXY

# Sum database for checksum verification
go env GONOSUMCHECK

# Disable module proxy (use direct)
export GOPROXY=direct

go list et go mod graph

Examinez les dépendances des modules avec ces commandes :

# List all modules in the build
go list -m all

# Show module dependency graph
go mod graph

# Find which module provides a package
go list -m -json all | grep -A5 gin

# Check for available updates
go list -m -u all

Vérification rapide

Que fait go mod tidy ?

Récapitulatif : modules Go

Concepts essentiels concernant les modules :

  • go mod init crée le module avec un fichier go.mod
  • go.mod répertorie le nom du module, la version de Go et les dépendances
  • go.sum contient les sommes de contrôle : validez-le dans le dépôt
  • go get ajoute ou met à jour les dépendances, et go mod tidy nettoie le fichier
  • replace permet d’utiliser des versions dérivées pour le développement local
  • Les versions majeures v2 et ultérieures nécessitent un suffixe de chemin

Questions Fréquemment Posées

La leçon « Modules Go avec go mod » est-elle gratuite ?

Oui — le texte complet de « Modules Go avec go mod » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Go Academy, passe à CoddyKit PRO. Le cours Go Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « Modules Go avec go mod » ?

Initialiser des modules, go.mod et go.sum Tu pratiques Go Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Go Academy ?

Aucune expérience préalable n'est requise. Go Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 2 sur 4.

Combien de temps prend la leçon « Modules Go avec go mod » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Go Academy ?

Oui. Chaque leçon Go Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Packages : organiser le code Go
  2. Modules Go avec go mod
  3. Ajouter des dépendances externes
  4. Packages internes et espaces de travail
← Retour à Go Academy