Go语言技术文章
-
Go 1.24 正式支持泛型类型别名,适合把旧包里的泛型类型平滑迁到新包。本文从包重构场景出发,说明别名与新类型的差异、旧代码影响、迁移步骤和最小验证方法。400 收藏 -
交叉类型(Intersection Types)的作用,说白了就是把多个类型“叠加”到一起,组合成一个全新的类型,而这个新类型会同时具备所有成员类型中的内容。 这类似于面向对象中的多重继承,让一个类型可以拥有多个类型的特性。 交叉类型工作原理 类型 A (Person) name: string a400 收藏 -
用 Linux ss -Htnp 从监听 socket、TCP 状态和进程归属三条线核对端口占用,并说明权限不足时如何判断结果是否完整。400 收藏 -
用户输入被拼进 Go 正则表达式时,regexp.QuoteMeta 可以把元字符变成字面量。本文用搜索过滤场景拆开转义、拼接、匹配和空输入边界。400 收藏 -
从 Logger、Handler、WithAttrs 和 WithGroup 的调用关系入手,解释结构化日志字段如何进入 Record,以及自定义 Handler 面对并发写入时应该承担哪些边界。400 收藏 -
Go database/sql 查询完成后,Rows.Close 仍可能报告驱动或网络错误。本文用一个可复现的事务流程说明关闭、读取错误与 Commit 的检查顺序。400 收藏 -
Golang · Go问答 | 5天前 | 错误处理 · net/http · Go问答 · HTTP认证 · net/http Request.BasicAuth HTTP Basic Auth Go认证
net/http.Request.BasicAuth 返回的 ok 布尔值用于区分没有 Basic Authentication 与用户名密码为空。本文用请求头样例和可运行测试拆开三种边界,避免把空密码误判成未认证。400 收藏 -
一篇面向线上值班的 Go 内存突增处理手册:从触发信号、快速判断、pprof 采集、缓存修复、回滚路径到恢复确认。399 收藏 -
用一个可复现的小实验讲清 Linux inode 用满的现象、df -i 检查、目录文件数定位、安全清理和恢复验证,避免只看 df -h 误判磁盘问题。399 收藏 -
数据库 · MySQL | 3星期前 | MySQL · sql优化 · EXPLAIN ANALYZE · 性能验证 · 数据库排查 · mysql 执行计划 EXPLAIN ANALYZE 实际耗时 慢查询排查
MySQL 的 EXPLAIN 只估算执行计划,EXPLAIN ANALYZE 会真正运行语句并给出实际行数与耗时,因此测试时看起来更慢。本文用订单列表查询拆开两者的差异,说明如何读 actual time、如何避免把诊断开销误当业务耗时,并给出可回滚的线上验证边界。399 收藏 -
数据库 · MySQL | 1星期前 | MySQL · 权限 · 性能排查 · mysql SHOW PROCESSLIST performance_schema.threads PROCESS权限 会话诊断
线上慢 SQL 需要先确认它属于哪个连接、卡在哪个阶段,再决定是否查看执行计划或终止会话。本文用 SHOW PROCESSLIST 与 performance_schema.threads 还原连接 ID、线程状态、权限边界和复核步骤。399 收藏 -
科技周边 · 业界新闻 | 1星期前 | 开发环境 · 工具链 · rust · 版本升级 · Rustup · Rustup 1.30 XDG 路径 RUSTUP_HOME RUSTUP_TOOLCHAIN 工具链迁移
Rustup 团队在 1.30 周期计划中列出了 XDG 路径支持,但它不是已经发布的稳定功能。本文根据官方计划说明,拆解现有目录、试验前检查、迁移验证和回退边界,避免把环境变量调整误当成正式迁移方案。399 收藏 -
围绕 database/sql.Rows.NextResultSet 处理多结果集,讲清 Next、Scan、NextResultSet、Err 和 Close 的调用顺序,并用空结果集与驱动支持差异做实战核对。399 收藏 -
Java 线程池准备退出时,close、shutdown 和 awaitTermination 到底怎么配合?本文用一个可验证的收尾流程说明停止接收任务、等待完成、记录未完成任务和超时兜底的边界。399 收藏 -
调用 os.File.ReadAt 读取固定长度时,n 和 err 如何一起判断?本文用短读、文件尾和数据完整性三个场景,说明 io.EOF 的边界与可复用的处理代码。399 收藏