go 这种仓库模式,真的好吗?

2019-07-17 22:33:12 +08:00
 Buffer2Disk

虽然启用了 go mod,但是不像 Java 那样有一个非常强大的中央仓库 maven,版本迭代和可靠性都是有保障的

go 虽然可以从 github 上虽然可以直接拉包下来,但是因为有的作者没打 tag,拉取的版本号显示的非常奇怪

而且如果哪天某个 lib 的作者一不高兴删了自己的仓库,那要部署代码的时候,就两眼懵逼了

5666 次点击
所在节点    Go 编程语言
20 条回复
ysn2233
2019-07-18 00:35:52 +08:00
当然不好,从没见人说 go 的包管理好话
yegle
2019-07-18 02:02:40 +08:00
你看国内互联网大公司谁没有自建 maven 仓库?为什么?
fcten
2019-07-18 09:21:56 +08:00
如果是企业级项目一般不会依赖 github
VDimos
2019-07-18 09:25:28 +08:00
你去看看 gopath 在 issue 上骂得多凶
lihongjie0209
2019-07-18 10:20:49 +08:00
@yegle
1. 作为 maven 主库的缓存代理, 由于网络原因, maven 主库下载速度比较慢
2. 作为本地私有仓库, 公司的代码原则上不允许推到公共仓库. 就像有 GitHub 也要自建 gitlab 一样

上述原因没有一个是因为 maven 这种包管理方式有问题
janxin
2019-07-18 10:29:53 +08:00
中央仓库就不会删除包了吗?隔壁 NPM 的教训忘记了吗?

为什么有 go mod 还会有这种烦恼?其实一样可以自建中央仓库的呀
jingxyy
2019-07-18 10:35:38 +08:00
tag 都没有 搞不好哪天就没了的库你敢用么
ralph79
2019-07-18 10:49:54 +08:00
没有绝对的好不好。
u823tg
2019-07-18 11:30:52 +08:00
go1.13 会默认 go proxy https://proxy.golang.org/
eslizn
2019-07-18 13:45:30 +08:00
你说的删除的问题,只要存过代码,可以起个新的 repo 后 go mod replace 解决
zichen
2019-07-18 14:07:37 +08:00
@jingxyy 这个在前期技术调研的时候其实就可以避免,靠谱点的公司都不会用野鸡第三方项目的。
guokeke
2019-07-18 17:10:35 +08:00
可以先 fork 下。
tyrantZhao
2019-07-18 17:55:34 +08:00
go 的包管理一塌糊涂
liulaomo
2019-07-18 22:16:07 +08:00
还好,和集中式仓库模式相比各有所长
layxy
2019-07-23 08:58:39 +08:00
企业项目会将依赖放入自己的 pkg 里吧,不会直接引用 github 等外部包,除了 go 官方包
reus
2019-07-23 13:28:31 +08:00
删就删啊,只要你用过一次,你本机上就存了的,你可以另外开一个,传上去,然后在 go.mod 里写一行 replace

广泛使用的代码,肯定每个使用者机器上都存了的,想彻底删除,是不可能的,何必担心删库

另外还有代理,代理也会缓存代码,删库也未必影响

maven 叫“中央仓库”,那 github 为什么就不能叫“中央仓库”?

你可以 vendor,可以 fork,可以自建 git 服务,可以自建代理缓存,方式有很多。不要认为就只有一种模式。
abcbuzhiming
2019-07-29 11:00:36 +08:00
@janxin NPM 那种管理一片混乱的所谓中央仓库是不能作数的
abcbuzhiming
2019-07-29 11:02:18 +08:00
@reus 中央仓库存在的意义是信任和稳定,如果连这都不需要那你的确不需要中央仓库,但是中央仓库的存在为大量的人节约了时间和精力。不是每个人都愿意像你这样折腾的
reus
2019-07-29 11:20:28 +08:00
@abcbuzhiming 分布式仓库就没有信任和稳定了? maven 就不会倒闭? npm 还被投过毒,中央仓库就一定稳定和值得信任,我认为是假命题。github 也没有浪费谁的时间精力吧?我用 github 做仓库也没有啥折腾的。

go 的仓库模式,就等于 git、hg 等版本管理工具的模式,你不习惯可以不用,但我们用得好好的。
janxin
2019-07-29 11:57:27 +08:00
@abcbuzhiming 中央仓库的信任问题怎么解决?上传了恶意包怎么办? npm 会出现的问题 maven 怎么保证不出现的?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/583941

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX