Информация об изменениях

Сообщение Re[3]: Пакеты и модули от 07.04.2022 5:48

Изменено 07.04.2022 6:20 Doom100500

Re[3]: Пакеты и модули
Здравствуйте, 00011011, Вы писали:

0>Или это особенности мышления автора проекта, который сделал отдельными пакетами "controllers", "models", "helpers" и тому подобное, и зачем-то прописал к ним пути через гитхаб, хотя все это просто лежит в папочках рядом с main.go? Я вот этого не понимаю...



Нет, не так.

Вот есть у тебя модуль (см. проект — отдельная независимая сущность). У неё есть название, задаётся при старте написания этого модуля командой

go mod init <module_name>.


module_name может быть любым (от слова вообще), но если планируется хранить исходники на гитхабе, то это будет github.com/UserName/RepoName/PackageName.

У модуля, естественно будут появляться подмодули, соответственно в поддиректориях., чтобы их импортировать, нужно указывать полный путь до подмодуля, включая module_name. То, что module_name имеет формат <путь до github>, не означает, что он должен синхронизироваться через github.

Внешние для модуля зависимости будут скачиваться в тайную директорию гошки, но их можно скопировать к себе в проект командой go mod vendor.
Re[3]: Пакеты и модули
Здравствуйте, 00011011, Вы писали:

0>Или это особенности мышления автора проекта, который сделал отдельными пакетами "controllers", "models", "helpers" и тому подобное, и зачем-то прописал к ним пути через гитхаб, хотя все это просто лежит в папочках рядом с main.go? Я вот этого не понимаю...



Нет, не так.

Вот есть у тебя модуль (см. проект — отдельная независимая сущность). У неё есть название, задаётся при старте написания этого модуля командой

go mod init <module_name>.


module_name может быть любым (от слова вообще), но если планируется хранить исходники на гитхабе, то это будет github.com/UserName/RepoName/PackageName.

У модуля, естественно будут появляться подмодули, соответственно в поддиректориях., чтобы их импортировать, нужно указывать полный путь до подмодуля, включая module_name. То, что module_name имеет формат <путь до github>, не означает, что он должен синхронизироваться через github.

Внешние для модуля зависимости будут скачиваться в тайную директорию гошки, но их можно скопировать к себе в проект командой go mod vendor.

Дело в том, что go get работает через git, и, чтобы иметь свои общие модули, которые хочется импортировать в свои — же разные проекты, то их называют именем пути к репозиторию. Это хорошо работает с github, а вот, например, с gitlab, с его группами и подгруппами, уже нет.

Я в своих игрушках общий код вообще оформляю в виде репозиториев с только .go файлами (не модули), и подключаю через git submodules.