この記事では、Golang に関する関連知識を紹介し、オープンソース Go の循環依存関係検出ツール (go-cyclic) について説明します。
go-cyclic 循環依存関係解決ツール
問題の説明
Go 開発者として、大規模なプロジェクトでは、パッケージの循環依存関係の問題がよく発生します。
Golang に循環依存関係がある場合、コンパイル中に例外がスローされます。
パッケージ a とパッケージ b の 2 つのパッケージがある場合。パッケージ a がパッケージ b に依存し、パッケージ b がパッケージ a に依存すると、循環依存関係が発生します。実際の状況はさらに複雑である可能性があります。たとえば、パッケージ a がパッケージ b に依存し、パッケージ b がパッケージ c に依存し、パッケージ c がパッケージ a に依存する場合、サイクルが形成されます。
import cycle not allowed
また、プロジェクトが非常に大きい場合は、パッケージの下に多数の .go ファイルがあり、(上に示したように) パッケージ間の循環参照のみが要求されます。どの .go ファイルとどの .go ファイルが循環的に直接参照されているかを確認するのは困難です。
Github アドレス: github.com/elza2/go-cyclic (PR の送信を歓迎します)
go-cyclic を使用すると、プロジェクト内に循環依存関係があるかどうかを確認し、特定の .go ファイルを見つけることができます。ループの問題を迅速に特定するのに役立ちます。
go install github.com/elza2/go-cyclic@latest # path 路径要设置为 go.mod 文件所在的路径.go-cyclic gocyclic --dir .pathrree
以上がGo の循環依存関係検出ツール (go-cyclic) について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。