Go教程技术文章
-
用 Go net/http 实现文件上传时,同时处理请求体大小、multipart 内存边界、原始文件名清洗、扩展名校验和服务端存储名。254 收藏 -
用 Go 的 encoding/csv 逐条读取大文件,处理固定或可变列数,记录 ParseError 的真实行列信息,并说明 ReadAll、ReuseRecord 和 LazyQuotes 的取舍。171 收藏 -
Go 反射读取结构体标签时,Get 的空字符串并不等于“标签缺失”。本文用 StructTag.Lookup 区分缺失键、显式空值与格式错误,并给出可诊断的封装写法。423 收藏 -
CI 获取 Go 私有模块失败时,不要只把 GOPROXY 改成 direct。先看模块前缀是否命中 GOPRIVATE,再区分 GONOPROXY、GONOSUMDB、私有代理回退规则和非交互凭据问题。339 收藏 -
通过源码调用图与二进制符号表两个证据边界,讲清 govulncheck source、binary 模式的运行方式、结果差异、局限和修复决策。142 收藏 -
依赖升级后版本仍不如预期,通常不是 go get 失效,而是 MVS 按完整模块图计算了 build list。本文用三组 Go 命令定位谁抬高了版本,并处理 replace、exclude 与工作区边界。462 收藏 -
govulncheck 的结果不只是在说依赖版本旧,还在说明漏洞符号是否能从项目入口被调用。本文按导入、符号和测试范围拆分扫描,帮助你判断哪些结果需要立即升级。189 收藏 -
Go modules 中 replace 写了却仍下载远程模块时,按主模块、require、替换版本和 go list -m -json 结果逐层定位真实来源。409 收藏 -
govulncheck 报告中的 symbol 不是普通关键词,而是漏洞函数或方法在项目调用图中的落点。本文从源码扫描开始,演示如何区分导入命中、真实可达调用和分析边界,并用 traces 与 JSON 固化排障证据。151 收藏 -
Go 服务 CPU 飙高、内存上涨或请求变慢时,按症状选择 CPU、heap、goroutine、block、mutex profile,再用 top、list 和对照采样确认热点。314 收藏 -
govulncheck 的价值不是多报漏洞,而是把模块命中、包导入和漏洞符号可达分层。本文给出调用链核对、构建条件对齐及升级复核方法。445 收藏 -
本地模块修改后 Go 仍使用旧版本时,按 GOWORK、go.work 的 use 路径、go list 目录和 GOWORK=off 对照逐层定位工作区边界。311 收藏 -
从请求 Context 派生查询超时,正确使用 QueryContext、关闭结果集并区分取消错误,定位 Go 数据库超时后连接仍被占用的原因。314 收藏 -
用 Go fuzzing 为解析函数补齐边界输入:从 f.Add 种子、限定 fuzz 时长,到把失败语料固化为可重复的回归测试。168 收藏 -
Go channel 消费者无法退出时,先用 goroutine profile 找阻塞栈,再用 Context 补取消分支,并按 channel 所有权选择关闭责任。171 收藏