Go语言技术文章
-
用 Go 1.24 的 strings.FieldsSeq 逐项读取空白分隔日志,比较 Fields 的切片结果,演示找到目标后短路退出以及字符串切片的生命周期边界。341 收藏 -
Go 1.25 为 testing.T、B、F 增加了 Output 方法。它把 io.Writer 接到同一条测试输出流,保留测试归属和内部缓冲,适合替代 fmt.Println 记录并行测试日志。本文拆开调用链、换行刷新和生命周期边界。408 收藏 -
bytes.Buffer.Grow 不是越早调用越好。本文从容量、写入、Reset 和 Bytes 的真实关系出发,说明预留空间、复用缓冲区与避免长期保留大内存的边界。419 收藏 -
用 selectors.DefaultSelector 组织非阻塞 socket 的注册、读事件分发和连接关闭,重点看 EVENT_READ、select、unregister 与 close 的顺序边界。469 收藏 -
Go 1.26 中实际使用的是 runtime/debug.SetCrashOutput。本文用独立文件接收未恢复 panic 与致命错误输出,说明文件描述符复制、覆盖旧目标和关闭时序的边界。328 收藏 -
DecodeRuneInString 遇到非法 UTF-8 时返回 RuneError 和 1,而空字符串返回 RuneError 和 0。掌握 size 的含义,才能在逐字节清洗和校验循环中既不死循环,也不误删后续合法字符。464 收藏 -
Go log/slog 的 HandlerEnabled 适合把动态级别判断前移。本文用 LevelVar 和请求级过滤示例,拆开日志级别、属性改写与上下文边界。304 收藏 -
Java 26 的 StructuredTaskScope 仍是预览 API。本文用两个并发子任务演示如何配置 timeout、调用 join 获取结果,并解释超时后取消与 close 等待线程结束的边界。493 收藏 -
用 PHP XMLReader 按游标读取超大 XML,区分 read、next 和 expand 的职责,控制节点处理和内存释放边界。331 收藏 -
科技周边 · 业界新闻 | 6天前 | 测试 · go · httptest · Go 1.27 · testing/synctest Go 1.27 httptest.NewTestServer 内存网络测试
Go 1.27 为 net/http/httptest 带来 NewTestServer,它使用内存假网络,并能与 testing/synctest 的确定性时间控制配合。本文从异步 HTTP 测试场景说明两者边界、最小用法与验收方式。152 收藏 -
Anthropic Prompt Caching 的关键不在于盲目加 cache_control,而在于把断点放在稳定前缀末尾,再从 cache_creation_input_tokens 和 cache_read_input_tokens 核对是否真正命中。本文用 Python Messages API 示例说明断点、20 个区块回看窗口、TTL 与成本判断。176 收藏 -
数据库 · Redis | 6天前 | Redis · 队列 · 并发控制 · 故障排查 · Sorted Set · redis Sorted Set ZPOPMIN ZMPOP 并发消费 业务顺序
Redis ZMPOP 可以从 Sorted Set 原子取出最小分值成员,但批量弹出后的业务顺序、空结果和多消费者并发仍需要单独设计。本文用 redis-cli 拆开 MIN、COUNT、分值返回和单消费者批处理边界。280 收藏 -
CloseIdleConnections 只清理 Transport 中已经空闲的 keep-alive 连接,不会打断正在使用的请求。文章用发布切换场景说明它与 Transport 复用、响应体关闭和灰度验证的边界。329 收藏 -
reflect.TypeFor[T]() 能在泛型代码里直接取得类型参数 T 的 reflect.Type,避免用零值或指针哨兵绕一圈。本文用类型注册表拆开 nil、指针、接口类型和缓存键的边界,说明它与 TypeOf 的职责差异。322 收藏 -
用 MySQL 8.4 的 JSON_SCHEMA_VALID() 把 JSON Schema 放进 CHECK 约束,再用 JSON_SCHEMA_VALIDATION_REPORT() 和 SHOW WARNINGS 定位字段缺失、类型错误与范围越界。345 收藏