Aller au contenu

Organisation du code et gestion des dépendances#

Comprendre l'importance d'une bonne organisation du code#

  • La qualité du code dépend grandement de son organisation.
  • Une structure de code bien organisée facilite la maintenance et l'évolution du code.
  • Permet une meilleure collaboration entre développeurs en rendant le code plus lisible et compréhensible.
  • Réduit les erreurs et les bugs en limitant les zones de codes redondants ou inutilisés.

Principes de l'organisation du code en Go#

  • Le langage Go adopte une organisation de code conventionnelle pour garantir la lisibilité et l'uniformité du code.
  • La structure standard d'un projet Go comprend généralement les dossiers suivants : cmd, pkg, internal, api, web, scripts, third_party, vendor, test, docs.
  • Les codes sources des commandes exécutables sont généralement placés dans le répertoire cmd.
  • Les librairies réutilisables sont placées dans pkg, les librairies privées dans internal.
  • api contient les définitions des APIs, web contient les ressources web statiques, scripts contient les scripts de build ou d'installation.

Structure des projets Go#

  • Exemple de structure d'un projet Go:
myapp/
├── cmd/
│   └── myapp/
│       └── main.go
├── pkg/
│   └── mylib/
│       ├── mylib.go
│       └── mylib_test.go
├── api/
├── web/
├── scripts/
├── third_party/
├── vendor/
├── test/
└── docs/

Gestion des dépendances dans Go#

  • Go utilise un système de gestion de dépendances appelé Go Modules.
  • Avant Go 1.11, dep était l'outil de gestion des dépendances recommandé, mais a été remplacé par Go Modules.

Introduction à Go Modules#

  • Go Modules est introduit dans Go 1.11 et devient le système standard pour la gestion des dépendances dans Go 1.13.
  • Go Modules offre une solution pour la gestion des versions de paquets, leur compatibilité et leur téléchargement.

Mise en place et utilisation de Go Modules#

  • Pour initialiser un nouveau module, utiliser go mod init [module path].
  • Les dépendances sont automatiquement ajoutées au fichier go.mod lors de la construction du projet avec go build ou go test.
  • Pour ajouter manuellement une dépendance, utiliser go get [package@version].
  • Le fichier go.sum contient les sommes de contrôle attendues pour le contenu spécifique de chaque module.

Résolution des problèmes courants avec les dépendances#

  • Pour mettre à jour toutes les dépendances à leur dernière version, utiliser go get -u.
  • Pour supprimer les dépendances inutilisées du fichier go.mod, utiliser go mod tidy.
  • En cas de problèmes de dépendances, il peut être utile de vider le cache avec go clean -modcache.