Go语言技术文章
-
Golang · Go教程 | 1星期前 | 并发 · 错误处理 · go · Context · context.WithTimeout context.Cause Go context.WithCancelCause
用一个可运行的 Go 请求链示例说明 context.WithCancelCause 如何区分主动取消、超时和上游失败,并给出错误判断、日志记录与兼容旧代码的检查方法。392 收藏 -
用 Go 标准库 log/slog 的 WithGroup 把请求、用户和数据库字段分组,结合 TextHandler 验证输出结构,并说明 Handler 实现与常见误区。116 收藏 -
从滚动日志窗口的实际场景出发,解释 slices.Clip 如何把切片容量收紧到长度,说明它与 slices.Clone、底层数组和 GC 回收之间的边界。346 收藏 -
文章 · 前端 | 1星期前 | 前端 · javascript · Fetch API · 异步请求 · Fetch AbortController 请求取消 abort(reason) AbortSignal.reason
fetch 请求被取消时,AbortController.abort(reason) 可以把用户主动切换、超时和页面离开区分开。本文用一个可运行的请求封装说明 reason 的传递、catch 判断和兼容边界。246 收藏 -
从文件发送到 TCP 连接的实际路径出发,比较 Linux sendfile 与 splice 的适用边界,并用 strace 和返回值验收零拷贝改造是否真的生效。467 收藏 -
TypeIs 和 TypeGuard 都能让类型检查器理解自定义谓词,但它们对 True、False 分支以及不变容器的处理并不相同。用可运行示例拆开选择边界。104 收藏 -
解释带 sync.Mutex 的结构体为什么不能随意复制,比较值接收者、指针接收者和容器传参的差异,并给出可运行的验收方法。397 收藏 -
Files.lines 返回的是带文件资源的 Stream。本文用可运行示例说明 try-with-resources 的关闭边界、异常路径和大文件读取时的验收方法,避免句柄长期占用。499 收藏 -
Java Stream 里的 filter、map 等中间操作不会立刻执行,只有终止操作真正消费流时,链上的日志和断点才会出现。本文从一段看似没有输出的代码开始,拆开惰性求值的触发边界、短路终止操作和流只能消费一次的限制,并给出可复查的调试写法。288 收藏 -
用一个可运行的小例子说明 netip.Addr 为什么能直接做 map 键,并拆开零值、IPv4 映射和 net.IP 迁移时最容易踩到的边界。275 收藏 -
文章 · php教程 | 1星期前 | PHP · 并发控制 · 线上排查 · 会话管理 · 配置验收 · php session.save_path PHP会话 session_write_close session.lazy_write
PHP session.lazy_write 默认只在会话数据发生变化时重写文件,排查时容易把正常行为误判为会话丢失。本文从 session.save_path、文件权限、会话锁和 session_write_close 入手,给出可复现的核对脚本与上线检查清单。469 收藏 -
Go 代码里 errors.As 返回 false,往往不是错误没有包装,而是目标变量的类型和自定义错误的实际形态没有对上。本文用一个订单校验错误的例子,拆开值接收者、指针接收者、目标指针层级和错误链验证,帮助你快速定位匹配失败。237 收藏 -
Go 1.26 新增 crypto/hpke,提供符合 RFC 9180 的混合公钥加密接口。本文用一个最小消息交换示例拆开封装、解封装、上下文信息和密钥用途边界,并说明如何验证密文不可直接当作明文使用。435 收藏 -
RAG 明明已经写入知识库,回答却像没有检索到内容?从查询改写、文本分块、相似度阈值和召回日志四个位置建立一条可验证的排查路径。350 收藏 -
Go 接口如果只返回一段错误字符串,调用方很难判断应该重试、提示用户还是修复参数。本文从订单查询接口的真实场景出发,设计可演进的结构化错误、参数语义、错误映射和兼容策略。413 收藏