第 7 期:依赖与模块
嘉宾:盛傲飞主持:杨文,欧长坤本期摘要:这是 Go 夜聊的第七期节目,我们和 goproxy.cn 的作者在 Go 1.17 发布时聊了聊在 Go 语言中的依赖管理、模块等相关的机制。Go 语言中的 Modules 走到今天这一步经历了哪些波折?看似在其他语言里早已攻克的代码依赖管理,在 Go 语言的情景下,又有哪些不为人知的努力?
时间线
00:00 开场白01:06 接触 Go 语言的契机02:57 Beego 等一系列 Web 框架的对比04:37 自己动手写 Web 框架06:33 Go Modules 之前的依赖管理16:12 Monorepo 代码管理的优劣22:24 “臭名昭著” 的 GOPATH 和 vendor28:36 dep 的风波37:46 “独裁式” 管理风格下的需求工程43:52 进入 Go Module 时代46:47 Go Modules 的基本原理52:40 godoc 和 pkg.go.dev54:57 从 golang.org 合并到 go.dev 域名66:22 Go Modules 的最小版本选择算法 MVS70:27 环境变量 GOPRIVATE72:25 模块的懒加载77:36 模块别名机制82:10 GOPATH 的废除与 Go 1 兼容性保证84:43 Go Workspace 工作区86:17 构建 goproxy.cn 的经历89:57 搭建代理的难点及其与镜像站的区别96:42 七牛云接管 goproxy.cn 的运营相关链接
谢大 astaxie 写的 Beego知名 Web 框架 Gin曾经的知名 Web 框架 Martini知名 Web 框架 Echo傲飞 aofei 写的 Web 框架 air标准库 net/http曾经的依赖管理工具 govengopkg.inyaml 包无闻编写的 ini 解析包曾经的依赖管理工具 gopm曾经的依赖管理工具 govendor曾经的依赖管理工具 depRuss Cox 关于 vgo 依赖管理的演讲Go Modules 的前身 vgoGo Modules 规范Russ Cox 和 Rob Pike 开发的 licensecheck模块功能目前的主要开发者 Bryan C. Mills傲飞开发的 Go 模块代理站 goproxy.cn李保坤开发的 Go 模块代理站 goproxy.io曾经的文包文档站 godoc.org 的源码Go 语言的多模块工作区 Workspace 的提案模块别名功能的相关讨论尾声推荐:jellyfin.org嘉宾推荐:The Art of Multiprocessor Programming (2nd Edition)嘉宾推荐:golang.design/go2generics📝 联系我们
Telegram 听众群