Сначала вы должны выбрать имя для своего проекта и записать его в файл go.mod.Это имя принадлежит корневому каталогу проекта.Каждый новый пакет, который вы создаете, должен находиться внутри своего собственного подкаталога, и его имя должно совпадать с именем каталога.
go.mod:
module myprojectname
или
module github.com/myname/myproject
Тогдаимпортируйте пакеты вашего проекта, например:
import myprojectname/stuff
или
import github.com/myname/myproject/stuff
Файлы пакета stuff
должны находиться в каталоге проекта stuff
.Вы называете эти файлы как хотите.
Также возможно создать более глубокую структуру проекта.Например, вы решили отделить файлы исходного кода от других (таких как конфиги приложения, файлы Docker, статические файлы и т. Д.).Переместим каталог stuff
в pkg
, каждый файл go внутри pkg/stuff
по-прежнему будет иметь stuff
имя пакета.Чтобы импортировать пакет материалов, просто напишите:
import myprojectname/pkg/stuff
Ничто не мешает вам создать больше уровней в иерархии, например github.com/myuser/myproject/pkg/db/provider/postgresql
, где:
github.com/myuser/myproject
- имя проекта. postgresql
- имя пакета. pkg/db/provider/postgresql
- путь к пакету относительно корня проекта.
Подробнее о модулях go вы можете прочитать здесь: https://github.com/golang/go/wiki/Modules
Проверьте этот репозиторий, чтобы получить полезную информацию о различных шаблонах, используемых при организации проекта: https://github.com/golang-standards/project-layout Если вы войдете в каталог pkg
, вы узнаете, какие проекты с открытым исходным кодом используют pkg
каталог в их структуре.