Go语言技术文章
-
Go 的 url.Parse 只验证输入能否解析成 URL 结构,不会验证 DNS、TCP、TLS 或 HTTP 服务。本文用分层检查和可超时的 net/http 示例区分解析成功与地址可达。388 收藏 -
Go 项目新增依赖后,go.mod 已经变化但 -mod=vendor 仍然找不到包,通常是 vendor 目录和 vendor/modules.txt 没有同步。本文按检查、更新、复查三条线定位原因。388 收藏 -
Go 的 html/template 会按输出上下文自动转义。本文解释为什么不能直接拼 HTML 字符串,以及如何划分普通文本、可信片段和回归检查边界。388 收藏 -
Go 的 recover 只能在同一 goroutine 正在展开的 defer 中直接调用。本文把 panic 转成可返回、可记录的 error,并说明后台 goroutine 的恢复边界与常见误区。388 收藏 -
Go 的 testing.T.Setenv 会修改整个测试进程的环境变量。本文说明它为何不能用于并行测试,并给出串行清理、显式配置和子进程隔离的选择方法。388 收藏 -
Golang · Go教程 | 3星期前 | Cookie · Go教程 · net/http · HTTP客户端 · Go cookies http.CookieJar SetCookies Cookie顺序
区分 Response.Cookies、Jar.SetCookies 与 Jar.Cookies 三条路径,按 URL 作用域判断 Go http.CookieJar 的可发送 Cookie,并解释同名 Cookie 按最长 Path、最早创建时间返回的顺序规则。388 收藏 -
Go 将数据库 NULL 直接扫描到 string 会失败。本文用 sql.NullString、sql.Null[string] 与 COALESCE 对比字段适配方案,说明如何保留空值语义并覆盖回归边界。388 收藏 -
用 Go 1.25 的 iter.Seq 封装一条可提前停止的流式校验链,说明 yield 返回值、错误回传和单次迭代边界,避免先收集切片再重复扫描。387 收藏 -
Golang · Go问答 | 1个月前 | 标准库 · go · 并发控制 · 故障排查 · 进程管理 · Go 外部命令 子进程 Cmd.WaitDelay CommandContext ErrWaitDelay
Go 程序调用外部命令时,子进程退出了但管道迟迟不关闭,Cmd.WaitDelay 如何限定等待边界?本文用 CommandContext、WaitDelay 和 ErrWaitDelay 拆开判断与收尾方式。387 收藏 -
Go slog 在多个子系统共用 id、status 等字段时,WithGroup 可以把属性放进稳定命名空间。本文用 TextHandler 和 JSONHandler 对比分组结果,并说明动态属性、嵌套分组与空组名的边界。387 收藏 -
用一个可运行的 net/http 示例说明 HandlerFunc 如何把普通函数接入 ServeMux,再用中间件包装请求日志与响应头,厘清组合顺序、闭包捕获和错误边界。387 收藏 -
Go 拼接 URL 时不要直接使用 filepath.Join:文件路径按操作系统规则处理,URL 需要保留 scheme、host、path、query 和编码边界。本文对比 filepath.Join、path.Join、url.JoinPath,并给出路径参数与查询参数的正确写法。387 收藏 -
Go 调低 GOMEMLIMIT 后 CPU 变高,通常是软内存上限收紧让 GC 更频繁。本文从 Go runtime 账本、堆目标、容器边界和 runtime/metrics 指标入手,区分 GC 压力、业务分配和外部内存风险,给出可回滚的定位清单。387 收藏 -
Go 服务端 Handler 通常不需要手动关闭 http.Request.Body,HTTP Server 会在请求结束时负责收尾;真正必须由调用方关闭的是客户端 Response.Body。本文按生命周期拆开这两个容易混淆的责任边界。387 收藏 -
Go 校验 HMAC 签名时,不要把十六进制或 Base64 文本当普通字符串比较。本文说明如何重新计算 MAC、解码签名并使用 hmac.Equal 比较,同时处理编码错误、长度边界和请求鉴权中的常见误区。387 收藏