概述

最近我将一些项目的依赖管理工具从 dep 迁移到了 go module,有一些爽的地方,也有一些不爽的地方,所以这里就简单介绍一下我的迁移历程中一些个人的观点感受。

先提一下,截止到我写这篇文章的时候,Go 的最新 release 版本是 1.16。

dep

好处

痛点

go module

好处

缺点

对比感受

整体来看,go module 还是值得升级了,唯一让我留念 dep 的 feature 就是精准的 version 指定,在 go module 中,没法做到精准的指定,即使你指定了,也是认为这是最低要求版本 “>=”,后面很可能因为有依赖的其他 package,会将这个 package 的版本升上去,当然,偶尔也是可以满足你的指定,就是使用你想要的那个版本的。

让我最舒心的就是我提交代码不用加 vendor 目录,而是使用一个 private 的 PROXY Server,这样 CI 速度不受影响,代码提交记录也很清爽,是个非常不过的改进。

Ref