>  기사  >  백엔드 개발  >  모듈의 모든 패키지에 종속성을 사용 가능하게 만드는 것을 방지하는 방법은 무엇입니까?

모듈의 모든 패키지에 종속성을 사용 가능하게 만드는 것을 방지하는 방법은 무엇입니까?

王林
王林앞으로
2024-02-05 23:57:071051검색

모듈의 모든 패키지에 종속성을 사용 가능하게 만드는 것을 방지하는 방법은 무엇입니까?

질문 내용

.net 배경에서 왔으며 현재 첫 번째 Go 프로젝트를 보다 일반적인 Go 프로젝트 구조(이 것과 유사)에 적용하려고 노력 중입니다. 내가 이해하지 못하는 것은 종속성이 실수로 속하지 않는 패키지로 끝나는 것을 방지하는 방법입니다.

foo라는 애플리케이션과 모델이라는 두 부분으로 구성된 프로젝트가 있다고 가정해 보겠습니다.

  • 내 모델에는 종속성이 거의 없습니다
  • foo 애플리케이션은 http, 로깅, 메트릭 등 라이브러리에 따라 달라질 수 있습니다.

프로젝트는 다음과 같습니다:

으아아아

그러나 모듈 파일은 루트 디렉터리에 있으므로 이 모델에서는 go get github.com/httplib 将使 httplib도 사용할 수 있습니다. 이 방법에는 단점이 있습니다:

  • 너무 간단해서(특히 vscode의 자동 가져오기와 같은 기능의 경우) 때로는 모델에 속하지 않더라도 httplib를 모델에 쉽게 요구할 수 있습니다.
  • 찾아보니 go.mod 모델에 대한 종속성과 애플리케이션에 대한 종속성이 무엇인지 알 수 없습니다.

이제 매우 세분화된 모듈을 사용하고 개발을 위해 go.work 파일을 추가할 수 있지만 이는 유지 관리가 어렵고 참조 구조와도 맞지 않습니다.

모든 패키지에서 종속성을 사용할 수 없게 만드는 방법은 무엇입니까? 이것이 현명한가?


정답


모든 패키지에 종속성을 사용하지 않도록 하는 방법[? ]

(모듈 사용)은 할 수 없습니다.

[…] 이게 현명한 일인가요?

아니요, 절대 아닙니다.

눈에 보이는 "단점"은 전혀 문제가 되지 않으며 실무상 문제를 일으키지 않습니다.

위 내용은 모듈의 모든 패키지에 종속성을 사용 가능하게 만드는 것을 방지하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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