首頁 >後端開發 >Golang >聊聊Go中的循環依賴檢測工具(go-cyclic)

聊聊Go中的循環依賴檢測工具(go-cyclic)

藏色散人
藏色散人轉載
2022-12-12 16:47:566548瀏覽

本篇文章為大家介紹Golang的相關知識,聊聊開源Go中的一個循環依賴檢測工具(go-cyclic) ,希望對大家有所幫助。

go-cyclic 循環依賴解決工具

問題說明

      作為Go 開發者,經常會在大型專案中遇到套件的循環依賴問題。
      如果 Golang 出現循環依賴,那麼會在編譯時拋出例外。

什麼時候會出現循環依賴?

      如果有兩個套件:package a 和 package b。當在包a依賴包b,包b依賴包a時,就會產生循環依賴。真實情況可能會更複雜一些。例如,如包a依賴包b,包b依賴包c,包c又依賴包a時,形成一個環。
聊聊Go中的循環依賴檢測工具(go-cyclic)聊聊Go中的循環依賴檢測工具(go-cyclic)

import cycle not allowed

      而且如果項目很大的時候,一個包下面有很多.go 文件,只提示包與包的循環引用(如上圖),是很難定位到哪個.go 檔案和哪個.go 檔案直接進行了循環引用,難以排查。

go-cyclic 簡單用法

      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)#

以上是聊聊Go中的循環依賴檢測工具(go-cyclic)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:learnku.com。如有侵權,請聯絡admin@php.cn刪除