J'ai étudié un certain nombre de Go de projets et il est un peu juste de la variation. Vous pouvez sorte de dire qui est à venir à partir de C et qui est à venir à partir de Java, comme l'ancien dépotoir à peu près tout dans les projets de la racine du répertoire d' main
paquet, et, plus tard, ont tendance à tout mettre dans un src
répertoire. Ni est optimal. Chaque avoir des conséquences b/c ils ont pour effet d'importer des chemins et comment les autres peuvent les réutiliser.
Pour obtenir les meilleurs résultats que j'ai travaillé sur l'approche suivante.
myproj/
main/
mypack.go
mypack.go
Où mypack.go
est package mypack
et main/mypack.go
est (évidemment) package main
.
Si vous avez besoin des fichiers de prise en charge, vous avez deux choix. Soit de les garder tous dans le répertoire de racine, ou de mettre privé fichiers de prise en charge en lib
sous-répertoire. E. g.
myproj/
main/
mypack.go
myextras/
someextra.go
mypack.go
mysupport.go
Ou
myproj.org/
lib/
mysupport.go
myextras/
someextra.go
main/
mypack.go
mypage.go
Seulement placer les fichiers dans un lib
répertoire s'ils ne sont pas destinés à être importés par un autre projet. En d'autres termes, s'ils sont privés des fichiers de support. C'est le principe de base d' lib
--pour séparer le privé et le public interfaces.
Faire les choses de cette façon vous donnera un bon chemin d'importation, myproj.org/mypack
de réutiliser le code dans d'autres projets. Si vous utilisez lib
alors interne des fichiers de prise en charge aura un chemin d'importation qui est indicatif de la, myproj.org/lib/mysupport
.
Lors de la construction du projet, utilisez l' main/mypack
, par exemple, go build main/mypack
. Si vous avez plus d'un fichier exécutable que vous pouvez aussi séparer ces sous main
sans avoir à créer des projets distincts. par exemple, main/myfoo/myfoo.go
et main/mybar/mybar.go
.