本篇文章為大家介紹Golang的相關知識,聊聊開源Go中的一個循環依賴檢測工具(go-cyclic) ,希望對大家有所幫助。
go-cyclic 循環依賴解決工具
問題說明
作為Go 開發者,經常會在大型專案中遇到套件的循環依賴問題。
如果 Golang 出現循環依賴,那麼會在編譯時拋出例外。
如果有兩個套件:package a 和 package b。當在包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 .path
# success output.Success. Not circular dependence.# failed output.Failed. 1 circular dependence chains were found.┌---→ app.go┆ ↓ ┆ routes.go┆ ↓ └--- handler.go
#
以上是聊聊Go中的循環依賴檢測工具(go-cyclic)的詳細內容。更多資訊請關注PHP中文網其他相關文章!