이 글에서는 Golang에 대한 관련 지식을 소개하고 오픈소스 Go의 순환 종속성 탐지 도구(go-Cyclic)에 대해 설명하겠습니다.
go-순환 순환 종속성 해결 도구
문제 설명
Go 개발자로서 우리는 대규모 프로젝트에서 패키지 순환 종속성 문제에 자주 직면합니다.
Golang에 순환 종속성이 있는 경우 컴파일 중에 예외가 발생합니다.
두 개의 패키지가 있는 경우: 패키지 a와 패키지 b. 패키지 a가 패키지 b에 종속되고 패키지 b가 패키지 a에 종속되면 순환 종속성이 발생합니다. 실제 상황은 더 복잡할 수도 있습니다. 예를 들어, 패키지 a가 패키지 b에 종속되고, 패키지 b가 패키지 c에 종속되고, 패키지 c가 패키지 a에 종속되면 순환이 형성됩니다.
import cycle not allowed
그리고 프로젝트 규모가 큰 경우, 패키지 아래에 .go 파일이 많고, 패키지 간 순환 참조만 표시되면(위 그림 참조) 어떤 .go 파일과 어떤 .go 파일을 찾기가 어렵습니다. file 순환 참조가 직접적으로 이루어지기 때문에 문제 해결이 어렵습니다.
Github 주소: github.com/elza2/go-cycle (누구나 PR을 제출할 수 있습니다.)
go-cycle을 사용하여 프로젝트에 순환 종속성이 있는지 확인할 수 있습니다. 특정 .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 중국어 웹사이트의 기타 관련 기사를 참조하세요!