Go语言技术文章
-
Go 1.24 默认支持泛型类型别名。本文从跨包迁移一个泛型类型的实际场景出发,说明别名与定义类型的语义差异、Go 1.23 实验开关的边界,以及如何用编译、测试和工具链检查完成迁移验收。185 收藏 -
Manifest V3 把扩展网络拦截从长期运行的后台页迁向 declarativeNetRequest。本文用一个最小规则集说明 manifest.json、updateDynamicRules 与 host_permissions 的关系,并给出权限、规则更新和兼容验证边界。185 收藏 -
用同一份 PNG 输入验证 image/png.DecodeConfig 的尺寸读取、Reader 消费位置和 Decode 配合方式,解释 bytes.Reader、Seek 与不可回退流之间的边界。185 收藏 -
文章 · linux | 3天前 | 定时任务 · Linux · 系统调用 · 性能排查 · 事件循环 · Linux epoll 周期任务 timerfd timerfd_create CLOCK_MONOTONIC
Linux timerfd 把周期定时器变成可读文件描述符,可以和 epoll 放进同一个事件循环。本文围绕 timerfd_create、timerfd_settime、read 返回的过期次数和 CLOCK_MONOTONIC,说明怎样避免 wall clock 调整与任务耗时带来的误判。185 收藏 -
文章 · 前端 | 2个月前 | 前端 · 性能优化 · javascript · 图片优化 · IntersectionObserver · 前端 性能优化 图片懒加载 IntersectionObserver Web性能 首屏优化
本文用商品列表图片场景,演示图片为什么会拖慢首屏,并用 IntersectionObserver 实现占位、进入视口、替换地址和加载完成的懒加载流程。184 收藏 -
访问 drive.google.com 出现连接超时、DNS异常或企业网络拦截时,应先确认官方地址,再区分本地浏览器、网络解析和组织策略问题。本文给出安全检查路径。184 收藏 -
Redis Lua 脚本一旦超过 lua-time-limit,会阻塞其他命令并返回 -BUSY。本文用一个长脚本现场说明如何确认阻塞、何时可以 SCRIPT KILL、写入后为什么只能重启,以及如何在脚本侧避免再次拖住主线程。184 收藏 -
围绕雨夜电车站这一单一主题,展示一张适合锁屏的竖屏主壁纸和明显不同的冷暖变体,提供完整中文提示词、对应英文提示词、留白安排与可复用的改词方法。184 收藏 -
Go 客户端明明复用了同一个 http.Transport,却不断新建 TCP 连接,常见原因不是连接池失效,而是响应体没有读完并关闭、每个请求重复创建 Transport,或空闲连接参数与并发量不匹配。本文用可观察的请求流程拆开判断方法。184 收藏 -
reflect.TypeFor[T]() 从 Go 1.22 开始直接返回泛型类型 T 对应的 reflect.Type。本文对比旧的 reflect.TypeOf((*T)(nil)).Elem(),说明接口类型、指针类型、类型缓存和 Go 版本兼容边界,给出可运行的类型判断示例。184 收藏 -
strings.FieldsFunc 适合按字符规则切分文本,但它会合并连续分隔符并丢弃空字段。本文用配置行解析场景说明它的边界,并给出保留空字段的自定义写法。184 收藏 -
AI 流式回答中途断线时,真正要保留的不是一段模糊的重试状态,而是已确认的增量令牌、可续接的游标和明确的连接状态。本文用一个可落地的 StreamSession 设计,拆解重连、去重与失败归档的边界。184 收藏 -
Golang · Go教程 | 1天前 | 标准库 · go · Go 1.27 · 并发测试 · HTTP 测试 · testing/synctest Go 1.27 httptest.NewTestServer Go 并发测试 内存网络
Go 1.27 为 httptest 增加 NewTestServer,默认使用内存网络;testing/synctest 则负责隔离并发测试中的 goroutine 与虚拟时间。本文用一个异步 HTTP Handler 示例说明两者的连接方式、等待边界和不适用场景。184 收藏 -
通过有界 channel、select 和 context,把压力显式传回生产端。183 收藏 -
线上 Redis 里堆积了过期业务前缀或历史缓存时,不能直接用 KEYS 和 DEL 硬删。用 SCAN 分批遍历、先记录样本、按速率提交 UNLINK,并保留停止开关和统计结果,能把清理风险压到可控范围。183 收藏