Go语言技术文章
-
bytes.Reader.WriteTo 会消费当前未读区间,完整导出后 Len 变为 0。本文解释读取索引为什么推进,并给出复用 Reader、重读原始字节和随机读取时的安全写法。450 收藏 -
Java walkFileTree 的 postVisitDirectory 不只在目录正常遍历后调用,目录迭代提前结束时也会带着 IOException 进入该回调。本文用最小 Visitor 说明 exc 的判断、继续与终止的取舍,以及批量文件任务如何保存部分结果并支持恢复。450 收藏 -
writeUTF 使用 modified UTF-8 并用两字节保存长度,编码后超过 65535 字节就会抛出 UTFDataFormatException。本文说明如何预判限制,并给出长文本改用长度加 UTF-8 字节的写读方案。450 收藏 -
bbolt 的 DB.View 会提供一个一致的只读事务视图,Tx.WriteTo 可以把该视图写入 io.Writer,Tx.CopyFile 则适合直接生成备份文件。本文给出两种导出方式的 Go 写法,并说明权限、错误处理和事务生命周期。450 收藏 -
用 Go log/slog 设计结构化日志字段时,把服务固定字段、请求上下文和事件字段分层,再用 Handler 统一分组与敏感字段脱敏,日志更容易检索和维护。450 收藏 -
语义检索是否需要第二阶段重排,关键不在模型更强,而在第一阶段已能召回正确文档、前排仍错序且业务能承担额外时延。本文用 Recall@K、NDCG/MRR、P95 和单次成本给出决策与实现方法。449 收藏 -
Golang · Go问答 | 3天前 | 错误处理 · IO · Go问答 · 字节偏移 io.Seeker Go strings.Reader Reader.Seek ErrInvalidWhence
strings.Reader.Seek 的 whence 不是任意整数,只能使用 io.SeekStart、io.SeekCurrent 或 io.SeekEnd。本文用字节偏移示例区分 ErrInvalidWhence、负位置和超过末尾三种情况。449 收藏 -
systemd-cgls 怎样按服务单元查看 cgroup 树?本文用 --unit、--full、--no-pager 展开服务层级,并说明 --all、-k、-M 的排查边界。449 收藏 -
weak.Pointer 不会让对象保持可达,但 map 中的弱键不会自动删除。本文用 Go 示例说明如何依据 Value() 返回 nil 清理失效键,并处理并发、保活和惰性扫描边界。448 收藏 -
Go net/http 中,响应 Trailer 不是普通响应头,服务端要在写出响应前声明尾部字段,客户端还要先把 Response.Body 读到 EOF 才能读取最终 Trailer。本文解释声明顺序、读取时机与为空排查方法。448 收藏 -
结构体里放入 sync.Mutex 后,按值传参、赋值或返回都会复制锁的内部状态,可能造成异常解锁、数据竞争和锁失去保护对象。本文从根因、错误写法、指针改造和 go vet copylocks 检查四个方面说明安全设计方式。448 收藏 -
AI 生成内容要可追溯,关键不是只保存最终答案,而是把来源实体、检索与生成活动、模型和人工角色拆开记录,再用稳定 ID 串成可查询的引用链。448 收藏 -
文章 · 前端 | 6天前 | javascript · AbortController AbortSignal.any AbortError TimeoutError AbortSignal reason
AbortSignal.any 会把首个触发源的 reason 原样传给组合信号。本文用 TimeoutError、AbortError、自定义 reason 和来源记录器区分超时与手动取消,并说明竞态与兼容边界。447 收藏 -
Go pprof 的 CPU 表里,flat 表示函数自身占用的采样,cum 表示函数连同下游调用链的累计采样。本文用调用关系、命令和误区说明两列该怎样配合阅读。447 收藏 -
Golang · Go教程 | 6天前 | go · Go教程 · net/http · WriteTimeout SSE 流式响应 SetWriteDeadline Go ResponseController
Go 流式响应不适合直接套用服务器级 WriteTimeout。本文说明如何用 ResponseController 为单个 Handler 覆盖写期限,在每次 Write 与 Flush 前设置短窗口、成功后清除,并处理 ErrNotSupported、中间件 Unwrap、客户端断开与代理缓冲。446 收藏