>  기사  >  백엔드 개발  >  Go의 순환 종속성 감지 도구(go-Cyclic)에 대해 이야기해 보겠습니다.

Go의 순환 종속성 감지 도구(go-Cyclic)에 대해 이야기해 보겠습니다.

藏色散人
藏色散人앞으로
2022-12-12 16:47:566448검색

이 글에서는 Golang에 대한 관련 지식을 소개하고 오픈소스 Go의 순환 종속성 탐지 도구(go-Cyclic)에 대해 설명하겠습니다.

go-순환 순환 종속성 해결 도구

문제 설명

Go 개발자로서 우리는 대규모 프로젝트에서 패키지 순환 종속성 문제에 자주 직면합니다.
Golang에 순환 종속성이 있는 경우 컴파일 중에 예외가 발생합니다.

순환 종속성은 언제 발생하나요?

두 개의 패키지가 있는 경우: 패키지 a와 패키지 b. 패키지 a가 패키지 b에 종속되고 패키지 b가 패키지 a에 종속되면 순환 종속성이 발생합니다. 실제 상황은 더 복잡할 수도 있습니다. 예를 들어, 패키지 a가 패키지 b에 종속되고, 패키지 b가 패키지 c에 종속되고, 패키지 c가 패키지 a에 종속되면 순환이 형성됩니다.
Go의 순환 종속성 감지 도구(go-Cyclic)에 대해 이야기해 보겠습니다.Go의 순환 종속성 감지 도구(go-Cyclic)에 대해 이야기해 보겠습니다.

import cycle not allowed

그리고 프로젝트 규모가 큰 경우, 패키지 아래에 .go 파일이 많고, 패키지 간 순환 참조만 표시되면(위 그림 참조) 어떤 .go 파일과 어떤 .go 파일을 찾기가 어렵습니다. file 순환 참조가 직접적으로 이루어지기 때문에 문제 해결이 어렵습니다.

go-Cyclic simple Usage

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)에 대해 이야기해 보겠습니다.

위 내용은 Go의 순환 종속성 감지 도구(go-Cyclic)에 대해 이야기해 보겠습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 learnku.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제