Go语言技术文章
-
用一个可复现的超时清理场景,说明 context.AfterFunc 的回调时机、Stop 返回值和幂等清理边界,给出可运行的 Go 示例与并发回归检查。151 收藏 -
govulncheck 报告中的 symbol 不是普通关键词,而是漏洞函数或方法在项目调用图中的落点。本文从源码扫描开始,演示如何区分导入命中、真实可达调用和分析边界,并用 traces 与 JSON 固化排障证据。151 收藏 -
在 Go 网页模板中安全输出表单、评论或搜索词,关键是使用 html/template,让普通字符串按所在 HTML 上下文自动转义,并谨慎处理 template.HTML。151 收藏 -
Go mutex profile 没有热点时,先用 runtime.SetMutexProfileFraction(-1) 读取开关,再确认采样比例、竞争窗口和 pprof 进程;本文还区分 mutex profile 与 block profile 的排查边界。151 收藏 -
Go select 本身不会提供缓冲空间,带缓冲 channel 负责排队,default 负责满载时立即降级。本文用一个可复用的发送函数说明丢弃、阻塞和退出控制的边界。151 收藏 -
Go encoding/gob 传递接口值时,必须让发送端和接收端注册相同的具体类型。本文用可运行的原创示例说明 gob.Register、接口地址、指针和值类型及 RegisterName 的边界。151 收藏 -
Go text/template 的 FuncMap 函数可以通过第二个 error 返回值中止 Execute。本文用一个校验函数说明错误传播、ExecError 解包、部分输出和生产边界。151 收藏 -
Golang · Go问答 | 3星期前 | net/http · Go问答 · 性能边界 · 高并发 连接池 http.Transport Go HTTP客户端 http.DefaultClient
Go 默认 Client 可以被多个 goroutine 并发复用,但并发安全不等于超时与连接池边界适合生产流量。本文区分空闲连接、总连接、请求超时和响应体回收,并给出从默认 Transport 克隆配置的判断方法。151 收藏 -
big.Int.SetString 的 base=0 会根据 0b、0o、0 或 0x 前缀选择实际进制;显式 base 则按固定进制读取文本。本文用 Go 示例区分两种模式、失败返回值和下划线边界。151 收藏 -
Go 的 http.Server.ErrorLog 专门接收连接接收失败、Handler 异常行为和底层文件系统错误。本文按工作流说明如何创建自定义 log.Logger、注入 Server、理解 nil 默认行为,并区分它与业务访问日志。151 收藏 -
Go 1.16 将 io/ioutil 的能力分散到 io 和 os。本文按函数职责整理 ReadFile、ReadDir、ReadAll、临时文件等迁移方式,并说明 DirEntry 与 FileInfo 的兼容边界。151 收藏 -
strings.Builder 可以通过 Reset 复用同一个构建器对象,但不能把 Reset 当成保留底层容量的承诺。本文说明安全复用、Grow、String、非零值复制和 bytes.Buffer 选择边界。151 收藏 -
Go net.Dialer 用 Timeout 与 DialContext 限制建连等待,多个截止点取较早者;示例解释父级取消、连接关闭,以及 TLS 和读写超时的独立边界。151 收藏 -
Go crypto/ecdh PrivateKey.Bytes 返回的是原始私钥编码副本,不是 PEM 或 PKCS#8 容器。本文用同曲线回读示例说明导出、校验、存储和敏感字节生命周期的边界。151 收藏 -
Go x/text/search 的 IndexString 返回首次匹配的字节半开区间,未命中时返回 -1,-1。本文用 UTF-8 混合文本说明 Matcher、Backwards、Anchor 与 Pattern 复用,避免把字节下标误当成字符序号。151 收藏