Go语言技术文章
-
CSS :has() 让父元素可以根据子元素状态切换样式,适合表单错误提示、选中卡片和条件高亮。文章用 :user-invalid、:checked 与 @supports 说明最小写法、边界和旧浏览器降级。340 收藏 -
用浏览器原生 Popover API 做一个键盘可用的操作菜单,覆盖 popovertarget、自动关闭、焦点回收、toggle 事件和不支持浏览器的降级方案。340 收藏 -
用 Go 的 multipart.Reader 逐段接收大文件,把请求体写入临时文件并在边界解析或磁盘失败时可靠清理,配套可运行的上传接口、大小限制与验收方法。340 收藏 -
Go 的 http.Request.Clone 会复制请求的大部分可变结构并替换 context,但 Body 仍是浅拷贝。本文用转发请求和超时取消两个场景,核对 Header、URL、Body 与 context 的安全边界。340 收藏 -
讲清 Go 中 http.Request.URL.Query 返回的 url.Values 结构,如何读取重复参数、保留出现顺序,并区分参数缺失与显式空值。340 收藏 -
Go 1.26 的实验包 runtime/secret 用 secret.Do 包住处理敏感数据的调用链,清理寄存器和栈上的临时值,并在堆对象失去引用后交给垃圾回收清理。本文说明启用方式、返回值复制、panic 与平台限制。340 收藏 -
Go 的 net/url 会把 URL 路径解码到 Path,同时用 RawPath 保留可复原的编码提示。掌握 URL.EscapedPath 的判断规则,才能在 %2F、路径重写和请求回放场景中稳定保留原始路径语义。340 收藏 -
Golang · Go问答 | 1个月前 | 并发 · pprof · 故障排查 · Go问答 · Go goroutine泄漏 net/http/pprof goroutineleak runtime/pprof
Go 1.27 将 goroutineleak profile 作为正式能力,但空结果不等于没有泄漏。本文从 runtime/pprof 的可达性判定出发,核对阻塞原语、全局对象盲区与 net/http/pprof 入口。340 收藏 -
当同一个 JSON 接口的内部字段会随 kind 改变时,可以先用 json.RawMessage 保留 payload,再按判别字段选择具体结构体二次解析。本文给出可复用的 Go 分层解析写法,并说明未知类型、空载荷和错误处理边界。340 收藏 -
Go 方法值创建时会保存接收者。指针接收者保存的是指针副本,调用时仍能沿指针修改原对象;值接收者保存的是结构体副本,后续变化不会回写。340 收藏 -
Go 1.26 已默认启用 Green Tea GC,但这不等于所有服务的内存占用都会自动下降。本文用固定负载、runtime.ReadMemStats、GODEBUG=gctrace=1 和 nogreenteagc 构建对照,整理一套可重复的观察方法。340 收藏 -
Linux 目录的 Default ACL 会先作为新对象 access ACL 的模板,再受创建时 mode 参数截权;本文用 getfacl 和 setfacl 解释 default:、umask、mask:: 与 #effective 的关系。340 收藏 -
区分 go-redis 的 PoolTimeout、DialTimeout、ReadTimeout、WriteTimeout 与单次 context deadline,结合 PoolStats 判断连接池排队、建连失败和命令读写变慢。340 收藏 -
Go 的 log/slog 可以把 HandlerOptions.Level 设置为 slog.LevelVar,在不重建 Logger 的情况下运行时切换最低日志级别。本文给出完整配置示例,说明 Set、Level、Enabled 的边界,以及多 Handler、并发更新和昂贵参数计算时的处理方式。340 收藏 -
Go container/list.MoveAfter 传入同一个节点时不会改变顺序,因为 e == mark 没有新的位置;本文进一步区分节点值相同、已经相邻和跨链表节点的边界。340 收藏