나는 많은 Go 프로젝트를 연구했으며 약간의 변형이 있습니다. C에서 온 사람과 Java에서 온 사람을 알 수 있습니다. 전자는 main
패키지 의 프로젝트 루트 디렉토리에있는 모든 것을 덤프 하고 후자는 src
디렉토리 에 모든 것을 넣는 경향이 있습니다. 그러나 어느 쪽도 최적이 아닙니다. 각각 수입 경로에 영향을 미치고 다른 사람들이 재사용 경로에 영향을 미치기 때문에 결과가 발생합니다.
최상의 결과를 얻으려면 다음 방법을 사용했습니다.
myproj/
main/
mypack.go
mypack.go
어디 mypack.go
있다 package mypack
와 main/mypack.go
(분명히)입니다 package main
.
추가 지원 파일이 필요한 경우 두 가지 중에서 선택할 수 있습니다. 이들을 모두 루트 디렉토리에 보관하거나 개인 지원 파일을 lib
서브 디렉토리 에 두십시오 . 예 :
myproj/
main/
mypack.go
myextras/
someextra.go
mypack.go
mysupport.go
또는
myproj.org/
lib/
mysupport.go
myextras/
someextra.go
main/
mypack.go
mypage.go
lib
다른 프로젝트 에서 파일을 가져 오지 않을 경우에만 디렉토리에 파일을 넣으십시오 . 즉, 개인 지원 파일 인 경우입니다. lib
개인 인터페이스와 공개를 분리 해야한다는 아이디어 입니다.
이런 식으로 작업하면 myproj.org/mypack
다른 프로젝트에서 코드를 재사용 할 수있는 멋진 가져 오기 경로를 얻을 수 있습니다. lib
내부 지원 파일 을 사용하는 경우이를 나타내는 가져 오기 경로가 myproj.org/lib/mysupport
있습니다.
프로젝트를 빌드 할 때는을 사용하십시오 main/mypack
(예 :) go build main/mypack
. 실행 파일이 둘 이상인 경우 main
별도의 프로젝트를 만들지 않고도 아래에서 실행 파일을 분리 할 수 있습니다 . 예를 들어 main/myfoo/myfoo.go
와 main/mybar/mybar.go
.