Go Go 官方终于开始注意包依赖的问题了!

huacnlee · 2016年09月07日 · 最后由 snailpp 回复于 2016年12月04日 · 12997 次阅读

现代语言如果没有一个跟 gem 一样好用的依赖包管理工具,都不好意思出来见人。

Go 带着厚重的 C/C++ 的后端开发文化,目前处于一个众口难调的局面,从 1.5 到 1.7 夸了三个大版本,才把 vender 目录作为默认依赖查询路径之一给定了下来,至于官方出一个包管理工具,以及维护一个像 https://rubygems.org 或者 https://npmjs.com 这样的集中式的依赖包管理平台,目测遥遥无期。

看看 Swift Package Manager 怎么搞的呗。。。

提交了问卷调查,然后使用过的 golang 包管理填的 no, 使用过最好的,填写的 ruby/builder. lol

@lgn21st 我现在特别喜欢 glide

#4 楼 @ibachue 我用的也是 glide,唯一让我觉得比较贴近 bundle 的一个方案。

GOPATH 就是最大的遗毒...

虽然现在也在用 glide, 但是 src pkg bin 目录简直没法用。

最简单的需求,保证依赖与自己的源码分开。用户可以自定义源码路径。

#6 楼 @saito 你消失了一年了 😄

#6 楼 @saito 有些其他的包依赖工具,就是通过重载 GOPATH 来实现的。

#1 楼 @lgn21st https://docs.google.com/document/d/1Bz5-UB7g2uPBdOx-rw5t9MxJwkfpx90cqG9AFL0JAYo/edit If we decide that the vendor behavior is correct, then in a later release (possibly Go 1.6) we would make the vendor behavior default on. Projects containing“vendor”directories could still use“GO15VENDOREXPERIMENT=0”to get the old behavior while they convert their code. In a still later release (possibly Go 1.7) we would remove the use of the environment variable, locking in the vendoring semantics. 早就计划好的了,哪来“从 1.5 到 1.7 夸了三个大版本,才把 vender 目录作为默认依赖查询路径之一给定了下来”

从来不用任何包管理工具,都是多余

😆 这么看来 Mix/Hex 做的真是不错。。。

#8 楼 @lgn21st 重载没啥用,还是需要一个 src 目录。对于有强迫症的人来说受不了... 😖😖😖

#7 楼 @huacnlee 看来大家都在用 Go 做些事情。我们主要是在 Docker 的基础上做 PaaS, 周边生态都是 Go, 所以要用。

只推荐 gb,虽然每个 project 都要设定一遍 GOPATH

#13 楼 @Saito 我们在用 Go 写区块链相关的底层和应用。

#9 楼 @reus 请再仔细阅读理解一下你贴的文章,以及从 1.5 到 1.7 这三个版本对 GO15VENDOREXPERIMENT 参数的默认值的处理,然后在理解我说的到底是什么意思。

在学Go真是各种不习惯。还是Ruby把人给惯坏了啊。先是找irb也就是其他语言里的repl, 有推荐说用官方的playground, 这怎么够用?! 最后找到gore勉强可以一用。而后,开始找bundle的替代品,现在还木有找到 😢 . 真是不舒服啊。

Go 生态没有 Ruby 全,只在都用 Go 的领域才特别方便。

#6 楼 @saito 每个项目都搞一个 env.sh ?

#18 楼 @suffering erlang 都有 shell 环境,你告诉我被 ruby 惯的?

#21 楼 @geniousli 毕竟 ruby 是母语 😏

#6 楼 @Saito Go 这套设计和 C 的最佳实践是紧密相关的,我之前写的 C 程序的组织风格就是 go 这样的设置,只是 Go 将其更统一了,我觉得弄一个环境变量,加上 Go get 非常的清晰。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号