Go 围棋包命名约定背后的想法是什么?

Go 围棋包命名约定背后的想法是什么?,go,naming-conventions,Go,Naming Conventions,我试图理解围棋中包命名约定背后的思想。大多数软件包的安装和导入方式如下: import "github.com/howeyc/fsnotify" 我认为包名应该是唯一的,但我不认为使用网站github.com有什么意义。为什么不直接使用author/package?比如: import "howeyc/fsnotify" 这不太可能发生碰撞。还是其他“更短”的策略?是因为它“只适用于”go get?或者还有其他原因吗?如果需要,可以使用howeyc/fsnotify。当使用github.co

我试图理解围棋中包命名约定背后的思想。大多数软件包的安装和导入方式如下:

import "github.com/howeyc/fsnotify"
我认为包名应该是唯一的,但我不认为使用网站
github.com
有什么意义。为什么不直接使用
author/package
?比如:

import "howeyc/fsnotify"

这不太可能发生碰撞。还是其他“更短”的策略?是因为它“只适用于”go get?或者还有其他原因吗?

如果需要,可以使用
howeyc/fsnotify
。当使用
github.com/howeyc/fsnotify
时,可以理解包托管在github上。其他存储库也可以工作

原因是它使使用
go-get
查找和安装依赖项变得更容易。否则,您必须手动满足依赖关系。而且,由于分叉回购在开源世界中非常常见,因此您可能有来自同一作者的修改版本。因此,它有助于区分项目所依赖的内容

用法:

go get [-d] [-fix] [-u] [build flags] [packages]
获取下载并安装由导入路径命名的包, 以及它们的依赖关系

签出或更新包时,get会查找分支或 与本地安装的Go版本匹配的标记。最 重要的规则是,如果本地安装正在运行 “go1”,get搜索名为“go1”的分支或标记。如果没有 版本存在它检索包的最新版本

有关指定程序包的详细信息,请参阅“
转到帮助程序包”

有关“go get”如何查找要下载的源代码的更多信息,请参阅“
go help remote


导入路径支持
go-get
命令。表示远程存储库的路径以代码路径开始。运行
go-help-remote
命令了解详细信息。

这在很大程度上是关于为您的包命名,以允许您使用叉子,和/或知道附加包的来源(否则,如果没有中央回购,这将是一项艰巨的任务!)。