Go语言技术文章
-
Go 跨站请求没有带上 Cookie,通常要同时检查 http.Cookie 的 SameSite、Secure、Domain、Path,前端 credentials 和 CORS。本文按响应头、浏览器请求、Go 读取三层给出排查顺序。111 收藏 -
Golang · Go问答 | 4天前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go net/http 连接复用 Transport MaxIdleConnsPerHost MaxConnsPerHost
说明 Go net/http Transport 的空闲连接池如何工作,区分 MaxIdleConnsPerHost、MaxConnsPerHost 与 IdleConnTimeout,给出共享 Transport 和 ClientTrace 的排查示例。137 收藏 -
Go 的 http.Cookie SameSite 只负责跨站发送限制,SameSite=None 还必须配合 Secure、HTTPS 和前端 credentials。本文用一个可复用的最小示例拆开这些条件,说明 Cookie 没有带上的常见原因与排查顺序。188 收藏 -
Go net/http 中 Request.Body 的关闭并不等于连接一定能复用。本文区分客户端请求体、服务端请求体和客户端响应体,说明 Response.Body 的读取与关闭、Request.Close、DisableKeepAlives 以及 HTTP/2 边界。209 收藏 -
解释 Go net/http 中 Request.Body 与 Response.Body 的责任差异,给出共享 Client、读完响应体并关闭 Body 的可复用最小示例,并说明大响应和禁用 keep-alive 的边界。218 收藏 -
Go reflect.TypeFor可直接取得泛型类型参数的反射类型。本文对比TypeOf动态值语义,提供批次外构建类型计划的示例,说明字段元数据复用、兼容写法和分配结论的边界。390 收藏 -
Go reflect.TypeFor 可以直接从泛型类型参数取得 reflect.Type,不依赖运行时值是否为 nil。本文对比 TypeFor 与 TypeOf,解释接口、指针、Elem 和旧版本兼容写法,帮助排查反射类型为空或层级不对的问题。468 收藏 -
Go 1.22 起可以用 reflect.TypeFor[T]() 直接取得泛型类型的 reflect.Type。本文用可复用示例说明结构体、切片和接口类型的获取方式,并区分 TypeFor 与 TypeOf 的边界。204 收藏 -
Go testing.B.Cleanup 适合绑定基准测试生命周期中的资源释放:先创建资源并注册 Cleanup,再用 ResetTimer 划定计时区间;本文用临时目录和自定义资源示例说明清理时机、LIFO 顺序,以及它与 b.TempDir 的选择边界。158 收藏 -
本文围绕 Go testing.B 的 ReportMetric 说明如何让基准测试报告输出自定义指标,重点排查指标为空、被 ResetTimer 清除、单位覆盖、总量未除以 b.N,以及 RunParallel 并行计数不安全等问题。194 收藏 -
用 testing.B.ReportMetric 把累计计数换算成每次操作或按时间统计的自定义基准指标,并处理单位、覆盖和并行计数边界。439 收藏 -
Go testing.F可通过固定边界种子建立可重复的基础语料。本文用非空行计数示例说明Add类型匹配、目标独立性与局部状态,并区分减少业务临时对象和模糊测试框架开销。176 收藏 -
Go testing.F 的稳定种子要在 f.Fuzz 前通过 f.Add 添加,参数签名必须完全匹配。本文说明空结果的常见原因、种子回归命令与可维护的种子组织方式。501 收藏 -
用 Go testing.F.Add 为模糊测试准备可重复的边界输入,本文给出一个可复用的最小示例,并说明 Fuzz 回调、运行命令、失败输入和回归测试之间的边界。344 收藏 -
Go os.DirFS 可以把一个目录包装成可复用的 fs.FS,批处理时在循环外创建并用相对路径读取文件,可减少重复路径处理;但它不是通用的 chroot 安全机制,符号链接和相对根目录仍需单独判断。413 收藏