Cet article vous présentera les connaissances pertinentes sur Golang et parlera d'un outil de détection de dépendances cycliques (go-cyclic) dans Go open source. J'espère qu'il vous sera utile. LGo-GYCLIC Cyclone s'appuyant sur des outils
Cas problématiques En tant que développeur Go, il rencontre souvent le problème de dépendance au cycle des sacs dans les grands projets. S'il existe une dépendance circulaire dans Golang, une exception sera levée lors de la compilation.
Quand les dépendances circulaires se produisent-elles ?
S'il y a deux forfaits : le forfait a et le forfait b. Lorsque le package a dépend du package b et que le package b dépend du package a, une dépendance circulaire se produit. La situation réelle est peut-être plus compliquée. Par exemple, si le package a dépend du package b, le package b dépend du package c et le package c dépend du package a, un cycle est formé.
import cycle not allowed
Copier après la connexion
Et si le projet est volumineux, il y a de nombreux fichiers .go sous un package, et seules des références circulaires entre les packages sont demandées (comme indiqué ci-dessus), il est difficile de localiser quel fichier .go et quel .go fichier Une référence circulaire est faite directement, ce qui rend difficile le dépannage.
go-cyclic Simple Usage
Adresse Github :
github.com/elza2/go-cyclic
(Tout le monde est invité à soumettre un PR)
go-cyclic
peut être utilisé pour vérifier si le projet a des dépendances cycliques, et peut localiser le fichier .go spécifique. Aide à localiser rapidement les problèmes de boucle.
Démarrage rapide
go install github.com/elza2/go-cyclic@latest
# path 路径要设置为 go.mod 文件所在的路径.go-cyclic gocyclic --dir .path
Copier après la connexion
# success output.Success. Not circular dependence.# failed output.Failed. 1 circular dependence chains were found.┌---→ app.go┆ ↓
┆ routes.go┆ ↓
└--- handler.go
Copier après la connexion
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!