12

Go1.17 快报:将移除 GOPATH

 3 years ago
source link: https://polarisxu.studygolang.com/posts/go/dynamic/go1.17-will-remove-gopath/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

大家好,我是站长 polarisxu。

是的,没看错,Go 1.16 刚正式发布,但这里说的是 Go1.17 将会包含的改变(不出意外的话),我会出一系列文章介绍 Go1.17 的变化。

关于 Go 1.16 的变化。Reddit 上有一张图总结的挺好的:

Mr2yi2.png!mobile

相关的知识点,我之前也写过很好几篇文章,有兴趣的可以看看:

刚刚 Go 官方发表博文 ,针对 Go1.16 中 “Modules on by default” 进行了详细讲解。默认启用 Module 是什么意思?也就是说 GO111MODULE=on,进一步,即使没有 go.mod ,go 命令现在仍以模块感知模式(module-aware mode)构建包。

尽管如此,你至少还可以手动禁用 Module,即设置 GO111MODULE=off。

但官方计划在 Go1.17 中移除 GO111MODULE 这个环境变量,届时将只能使用 Module 模式。Go 语言总是针对某个问题的尽量只有一种解决方案,保持其简单的“本性”,我个人还是挺喜欢的。当然我相信也会有人不喜欢。

这里给大家一些建议:

  • 网上的文章,讲解 Go 环境搭建的,如果不是基于 module,而是 GOPATH 的,直接忽略。GOPATH 的历史,有兴趣可以了解,但作为新手,入门时多半下载的最新版本 Go,这时如果看到文章还是 GOPATH 年代的,基本环境都搞不定,会很有受挫感。
  • 目前市面上的图书,大部分都还是基于 GOPATH 的(注:我出版的 《Go 语言编程之旅》是基于 Module 的),这部分内容,基本也可以略过,毕竟 GOPATH 要进博物馆了。
  • 如果还没有迁移到支持 Module 的版本,这半年时间尽快迁移吧,毕竟现在的库基本会基于 Module 构建,Go 1.17 预计 2021 年 8 月发布,距离 Go 1.11 过去好几个版本了,给了充足的过度时间。

此外,在 Go1.17 中关于 module 的特性还会有其他改进,比如支持 lazy module loading ,这应该会使模块加载过程更快,更稳定。对 Go1.17 中其他设计模块变化的部分,可以通过 https://github.com/golang/go/labels/modules 查看。

对于 Go 做出废弃 GOPATH 的决定,你怎么看?


Recommend

  • 84

    Stack trace provides, most of the cases, enough information to identify where the panic (in this example) occurs. It shows the chain of function calls and the source file with line number at which…

  • 50
    • studygolang.com 5 years ago
    • Cache

    golang的 GOPATH和vendor的搜索关系

    golang的 GOPATH和vendor的搜索关系 基本规则 所有的go文件都是必须组织成包的形式,放在相应文件夹下: 1.1 建议包名和文件夹名字相同;虽然也可以不同,但会引发使用误...

  • 47
    • www.tuicool.com 4 years ago
    • Cache

    GOPATH 是用来干嘛的?

    GOPATH 是 Go 语言的工作目录,他的值可以是一个目录路径,也可以是多个目录路径,每个目录都代表 go 语言的一个工作区。 我们开发 Golang 项目时,需要依赖一些别的代码包,这些包的存放路径就与 GOPATH 有关。 在 v1.11...

  • 28
    • www.tuicool.com 4 years ago
    • Cache

    I still ❤️ you, GOPATH

    The newest release of Go – Go 1.13 – finally introduced full support for

  • 47

    关于IDE,开发时推荐JetBrains的GoLand,JetBrains系列IDE的好无需多言了,不过建议第一次跑hello world时,还是用简单的文本编辑器(sublime text/vs code/atom等)和go的命令,手动操作后加深理解。 GOPATH 安装完...

  • 18
    • studygolang.com 4 years ago
    • Cache

    详解GOROOT和GOPATH

    GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH 作用: 存放sdk以外的第三方类库 自己收藏的可复用的代码 目录结...

  • 27
    • 微信 mp.weixin.qq.com 3 years ago
    • Cache

    GOPATH 模式怎么迁移至 Modules 模式?

    01 介绍 Go 项目使用多种依赖管理策略。诸如 dep 和 glide 很受欢迎,但是它们在使用上有很大差异,并且并不总是能很好地协同工作。某些项...

  • 7
    • blog.studygolang.com 3 years ago
    • Cache

    再看GOPATH

    再看GOPATH 再看GOPATH 2013年1月29日 徐新华 Comments

  • 8
    • developer.51cto.com 3 years ago
    • Cache

    Go1 要不要移除 GOPATH?

    大家好,我是正在学习蒸鱼的煎鱼。 前几天 Go 语言社区被 《Go1.17 快报:将移除 GOPATH》,以及最近 Go1.16 的 Go modules 变动引爆社区浪潮。 经过三天冷静期,现在整体热度基本降下来了。煎鱼打算从另外一个角度来聊下,看看移除 GOP...

  • 3
    • blog.wolfogre.com 2 years ago
    • Cache

    $GOPATH 耦合之殇

    $GOPATH 耦合之殇 2018/09/30

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK