Aller au contenu

Go

Langage moderne conçu chez Google par Rob Pike, Ken Thompson et Robert Griesemer, Go résout les problèmes de compilation lente et de concurrence difficile hérités du C++. Sa simplicité, sa performance et son modèle de goroutines en font un choix de référence pour le cloud et les CLI.


graph LR
    A["Histoire"] --> B["Frameworks"]
    B --> C["Exemples"]
    C --> D["Tests"]
    D --> E["Construction"]
    E --> F["Bonnes pratiques"]
    F --> G["Ecosysteme"]

Ce que vous allez apprendre

À la fin de ce tutoriel, vous serez capable de :

  • Situer Go dans son contexte historique, de sa création chez Google (2009) à l'introduction des generics
  • Choisir un framework adapté (Gin, Echo, Fiber) ou utiliser net/http standard
  • Implémenter une API REST CRUD avec Gin + GORM et des outils CLI avec Cobra
  • Mettre en place des tests avec le package testing natif, testify et le fuzzing
  • Construire et distribuer des binaires avec la cross-compilation et GoReleaser
  • Appliquer les recommandations Effective Go et éviter les anti-patterns courants

Parcours

Section Contenu
Histoire Création chez Google (2009), Go 1.0 (2012), generics (1.18), évolution
Frameworks courants Comparatif Gin, Echo, Fiber, Chi, net/http standard (Go 1.22), Cobra CLI, gRPC-Go
Exemples d'implementation API REST CRUD avec Gin + GORM, outil CLI multi-commandes avec Cobra, worker pool et goroutines
Tests Package testing natif, table-driven tests, httptest, testify, benchmarks, fuzzing natif, coverage
Construction & packaging Go modules, cross-compilation GOOS/GOARCH, build tags, ldflags, Docker scratch/distroless, GoReleaser
Bonnes pratiques Effective Go, gofmt, interfaces implicites, error wrapping, anti-patterns (goroutine leaks, init abuse), pprof
Ecosysteme VS Code + gopls, GoLand, golangci-lint, staticcheck, govulncheck, Delve, pprof, fgprof