Installation du SDK Go, configuration de l'environnement et maîtrise des commandes de base

Introduction au langage Go

Créé par Google en 2009, Go (ou Golang) est un langage compilé et statiquement typé conçu pour répondre aux défis modernes de l'informatique, notamment la programmation concurrente et le développement de systèmes distribués à grande échelle.

  • Performance et Typage : Contrairement aux langages interprétés comme Python, Go est compilé directement en code machine, offrant des performances proches du C++. Son typage fort garantit une sécurité accrue à la comiplation.
  • Gestion de la mémoire : Il intègre un ramasse-miettes (Garbage Collector) efficace, libérant le développeur de la gestion manuelle de la mémoire.
  • Compilation croisée : L'une des forces majeures de Go est sa capacité à générer des exécutables pour différentes plateformes (Linux, Windows, macOS) sans dépendances externes.
  • Simplicité : La syntaxe est épurée, facilitant la maintenance et l'apprnetissage rapide pour les développeurs venant du Java, du C++ ou de Python.

Téléchargement et Installation

Les fichiers d'installation officiels sont disponibles sur le site de téléchargement de Google : https://go.dev/dl/.

Une fois installé, vérifiez que le binaire est accessible dans votre terminal avec la commande suivante :

go version

Commandes essentielles de l'outil Go

L'outil CLI go centralise toutes les tâches de développement. Voici les commandes les plus utilisées :

  • go build : Compile les paquets et les dépendances en un fichier exécutable.
  • go run : Compile et exécute immédiatement un programme temporaire.
  • go env : Affiche les variables d'environnement actives.
  • go get : Télécharge et installe des bibliothèques tierces.
  • go mod tidy : Nettoie et met à jour le fichier de dépendances go.mod.
  • go fmt : Formate automatiquement le code source selon les standards du langage.
  • go test : Exécute les fichiers de test unitaires (terminant par _test.go).

Configuration de l'environnement de travail

Go utilise plusieurs variables d'environnement cruciales pour localiser les outils et les projets :

# GOROOT : Chemin d'installation du SDK Go
# GOPATH : Ancien espace de travail (moins utilisé depuis l'arrivée des modules)
# GO111MODULE : Activation du mode modules (recommandé sur 'on')

Pour modifier ces configurations de manière persistante, utilisez la commande go env -w :

# Activer la gestion des modules
go env -w GO111MODULE=on

# Configurer un proxy pour accélérer le téléchargement des dépendances
go env -w GOPROXY=https://goproxy.io,direct

Premier programme et exécution

Tout programme Go commence par la déclaration d'un paquet. Le point d'entrée d'une application est toujours la fonction main dans le paquet main.

package main

import "fmt"

func main() {
   message := "Initialisation du système"
   version := 1.0
   
   fmt.Printf("%s - Version %.1f\n", message, version)
}

Compilation et exécution directe

Pour lancer le script sans créer d'exécutable permanent :

go run main.go

Pour générer un fichier binaire :

go build -o mon_application main.go

Compilation croisée (Cross-Compilation)

Go permet de compiler pour une architecture ou un système cible différent depuis votre machine de développement en changeant les variables GOOS et GOARCH.

# Compiler pour Linux (architecture 64 bits) depuis Windows ou Mac
GOOS=linux GOARCH=amd64 go build -o app_linux main.go

# Compiler pour Windows (64 bits) depuis un système Unix
GOOS=windows GOARCH=amd64 go build -o app_win.exe main.go

# Compiler pour macOS (architecture Apple Silicon)
GOOS=darwin GOARCH=arm64 go build -o app_mac main.go

Nettoyage de l'IDE (Cas de GoLand)

Si vous devez réinstaller proprement votre environnement de développement JetBrains GoLand sous macOS, voici les répertoires à supprimer :

rm -rf ~/Library/Application\ Support/JetBrains/GoLand*
rm -rf ~/Library/Caches/JetBrains/GoLand*
rm -rf ~/Library/Logs/JetBrains/GoLand*
rm -rf ~/Library/Preferences/com.jetbrains.goland.plist

Gestion des dépendances avec Go Modules

La gestion moderne des bibliothèques repose sur les modules. Voici le flux de travail classique :

# Initialiser un nouveau projet
go mod init mon-projet-web

# Ajouter une dépendance spécifique (ex: Gin Gonic)
go get github.com/gin-gonic/gin

# Synchroniser les dépendances après modification du code
go mod tidy

# Copier les dépendances dans un dossier local 'vendor' (optionnel)
go mod vendor

Étiquettes: Go golang SDK compilation backend

Publié le 18 juillet à 02h38