Go语言技术文章
-
Go 1.24 为 net/http 增加 HTTP2Config 与 Protocols 配置。本文从服务端并发流限制和客户端兼容验证入手,说明 HTTP2Config 适合解决什么问题、哪些字段只对服务端生效,以及如何用最小代码确认协议协商结果。488 收藏 -
用一个可复用的卡片组件说明 CSS container query 与 ResizeObserver 的分工:样式交给 CSS,数据计算交给观察器,并通过 requestAnimationFrame 合并重复通知。488 收藏 -
用 Go atomic.Pointer 替换进程内共享配置时,关键不是把指针换掉,而是保证读线程拿到完整快照、发布顺序清楚且失败时能回到旧版本。本文用一份可运行的配置结构说明初始化、原子发布、校验和回滚边界。488 收藏 -
2026年中秋节是9月25日至27日,共放假3天。高速是否免费不能只看中秋节三个字,还要按当年小客车免费通行政策和官方临时通知核对。本文说明日期、查询入口和出行前的核对顺序。488 收藏 -
如果这里要校验的是一个单独的嵌套对象,比如 { "adminEmail": "...", "forumName": "..." },而不是对象数组,那 @RestRequestParam 的 map 应该设为 false,同时继续保留 @ConstraintsCollection。原因其实很直接:它488 收藏 -
Go 1.21 之后,工具链版本不只由机器上的 go 决定。用 go.mod、GOTOOLCHAIN 和 CI 矩阵配合,能把自动升级、固定版本和失败回退边界讲清楚。488 收藏 -
Go 的 POST 请求第一次失败后重试,服务端却读到空 Body,通常不是服务端丢数据,而是请求体只被消费了一次。本文用 bytes.Reader、GetBody 和两次请求日志拆开这个问题,给出可验证的重试写法与边界。488 收藏 -
Go 的 time.Parse 不使用 YYYY-MM-DD 这类占位符,而是用固定参考时间描述布局。本文从解析失败的现场出发,拆解 2006、01、02、15、04、05、MST 和 -07:00 的含义,并说明无时区输入时 Parse 与 ParseInLocation 的区别。487 收藏 -
Python 正则防护需要同时考虑输入上限、模式设计与调用预算,说明标准库 re 和第三方 regex 的超时区别,并用状态封装区分输入拒绝、不匹配和超时。487 收藏 -
Java Files.find 通过 maxDepth 限制目录层级,并把 BasicFileAttributes 交给匹配器筛选普通文件、大小和后缀。本文还说明惰性 Stream 的关闭方式,以及 IOException 与 UncheckedIOException 的处理边界。487 收藏 -
提供一组适合 9:16 手机锁屏的琥珀沙丘壁纸提示词,包含中文提示词、英文提示词、主图与偏右构图变体,以及锁屏留白、风纹密度和裁切调整方法。487 收藏 -
Go weak.Pointer 适合做不阻止对象回收的弱索引:业务代码保留强引用,索引只保存 weak.Pointer,读取时用 Value 判断对象是否仍可用,并在失效后删除旧条目。487 收藏 -
Python 3.13 新增 typing.get_protocol_members,可返回 Protocol 定义及继承得到的成员名称 frozenset。本文通过一次成员探测故障复盘,说明正确读取、稳定排序、泛型别名边界、TypeError 处理和旧版本兼容写法。487 收藏 -
Go 1.23 起可用 slices.Chunk 返回 iter.Seq,按固定大小惰性遍历连续子切片。本文用完整示例说明末尾短块、空输入、非法大小、容量裁剪、元素修改与批处理错误定位。487 收藏 -
Go encoding/json/v2 默认拒绝 JSON 对象里的重复成员名。本文说明如何保持严格默认、避免误用 AllowDuplicateNames,并处理大小写匹配、SemanticError 与 v1 迁移回归。487 收藏