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

huacnlee · 2016年09月07日 · 最后由 snailpp 回复于 2016年12月04日 · 5496 次阅读
共收到 23 条回复

现代语言如果没有一个跟 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 参数的默认值的处理,然后在理解我说的到底是什么意思。

#15楼 @lgn21st 网络金融?

在学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非常的清晰。

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