Rumah >pembangunan bahagian belakang >Golang >Mari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam Go

Mari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam Go

藏色散人
藏色散人ke hadapan
2022-12-12 16:47:566515semak imbas

Artikel ini akan memperkenalkan anda kepada pengetahuan yang berkaitan tentang Golang dan bercakap tentang alat pengesan kebergantungan kitaran (go-cyclic) dalam sumber terbuka Go. Saya harap ia akan membantu anda.

alat penyelesaian pergantungan kitaran go-cyclic

Penerangan masalah

Sebagai pembangun Go , kami sering menghadapi masalah pergantungan pekeliling pakej dalam projek besar.
Jika terdapat kebergantungan bulat di Golang, pengecualian akan dilemparkan semasa penyusunan.

Bilakah kebergantungan bulat berlaku?

Jika terdapat dua pakej: pakej a dan pakej b. Apabila pakej a bergantung pada pakej b, dan pakej b bergantung pada pakej a, kebergantungan bulat akan berlaku. Keadaan sebenar mungkin lebih rumit. Sebagai contoh, jika pakej a bergantung pada pakej b, pakej b bergantung pada pakej c, dan pakej c bergantung pada pakej a, kitaran terbentuk.
Mari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam GoMari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam Go

import cycle not allowed

Dan jika projek itu besar dan terdapat banyak fail .go di bawah pakej, ia hanya akan menggesa rujukan pekeliling antara pakej (seperti yang ditunjukkan di atas), yang sangat Sukar untuk mencari fail .go dan fail .go yang mempunyai rujukan bulat langsung, menjadikannya sukar untuk menyelesaikan masalah.

Penggunaan mudah go-cyclic

Alamat Github: github.com/elza2/go-cyclic (Semua orang dialu-alukan untuk menyerahkan PR)

🎜>go-cyclic boleh digunakan untuk menyemak sama ada terdapat kebergantungan kitaran dalam projek dan mencari fail .go tertentu. Membantu mencari isu gelung dengan cepat.

Permulaan Cepat

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

Mari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam Go

Atas ialah kandungan terperinci Mari kita bincangkan tentang alat pengesan pergantungan kitaran (go-cyclic) dalam Go. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam