go module

Grassto1 天前
开发语言·缓存·golang·go·go module
11 Go Module 缓存机制详解初识 Go Module 时,我会有疑问:Go 把 module@version 缓存在本地时,到底缓存了哪些东西、放在哪里、什么时候会命中复用、什么时候必须重新走下载?
Grassto11 天前
后端·golang·go·go module
10 Go 是如何下载第三方包的?GOPROXY 与源码解析初次接触 Go 的时候,使用 go get 获取包的时候,发现很慢,还经常会超时报错。一个解决方案是使用 GOPROXY,本篇详细介绍 GOPROXY。
Grassto20 天前
golang·go·go module
深入 `modload`:Go 是如何加载并解析 module 的上一篇我们把“从 go build 进入 module 加载包”的入口梳理了从 go build 到模块加载的调用路径:当需要加载第三方包时,cmd/go/internal/load 包会调用 cmd/go/internal/modload 包来完成 module 相关的加载工作。
Grassto21 天前
开发语言·后端·golang·go module
9 Go Module 依赖图是如何构建的?源码解析第八篇我们已经明确:cmd/go/internal/modload 的核心职责之一,是构建 module 依赖图(module graph)并据此得到 build list。
Grassto1 个月前
golang·go·go module
从 `go build` 开始:Go 第三方包加载流程源码导读前面几篇我们聊的都是“机制”:import path 怎么解析、module 怎么查找、版本怎么选择。
Grassto1 个月前
后端·golang·go·go module
Go Module 的版本选择算法:Minimal Version Selection(MVS)Go Module 里最容易让人“感觉反直觉”的部分,往往不是下载、不是缓存,而是版本选择:你明明知道某个依赖已经发布了新版本,但 Go 就是不选;你只升级了一个依赖,却发现一串间接依赖跟着变了;你删掉一个依赖,版本却没有自动降回去。
Grassto1 个月前
开发语言·golang·go module·go import
Go 是如何解析 `import path` 的?第三方包定位原理写 Go 写久了,import 会变成一种“肌肉记忆”:IDE 一补全,你一保存,构建就过了。但只要你遇到过下面这种事,你就会意识到:import 不是“引用字符串”,它背后有一套非常具体的定位逻辑。
Grassto1 个月前
golang·go·go module
Go Module 基础概念全解析:module、version、sum 是什么如果你只是“会用” Go Module,但让你解释清楚这些词到底在指什么,后面一旦涉及到源码分析、版本选择或者校验流程,就很容易卡壳。
Grassto1 个月前
golang·go·go module
一个 import 语句,引发的 Go 第三方包加载之旅我不知道大家会不会跟我一样,每次在接触新语言时,遇到三方库的引入,我总是会有几个问题在写 Go 项目时,大概率每天都会写这样的代码(当然现在大多都是IDE直接导入了):
我是有底线的