Maison  >  Article  >  développement back-end  >  Parlons de l'outil de détection de dépendances cycliques (go-cyclic) dans Go

Parlons de l'outil de détection de dépendances cycliques (go-cyclic) dans Go

藏色散人
藏色散人avant
2022-12-12 16:47:566333parcourir

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
Parlons de loutil de détection de dépendances cycliques (go-cyclic) dans Go 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. Parlons de loutil de détection de dépendances cycliques (go-cyclic) dans Gogo-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
# success output.Success. Not circular dependence.# failed output.Failed. 1 circular dependence chains were found.┌---→    app.go┆          ↓
┆       routes.go┆          ↓
└---    handler.go

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer