Go语言技术文章
-
MySQL JSON_SCHEMA_VALID() 只能返回 0 或 1。本文用 JSON_SCHEMA_VALIDATION_REPORT() 读取失败原因、JSON Pointer 路径和失败关键字,区分 required 与 type 错误,并给出可接入审计流程的 SQL 写法。230 收藏 -
Go 使用 archive/tar 解包时,先用 filepath.IsLocal 限制归档成员名,再区分目录、普通文件和链接条目,避免路径穿越与越界写入。230 收藏 -
TypeScript 中,外部输入优先使用 unknown 并通过类型守卫收窄;any 只适合被限制在遗留适配层。本文从接口响应、运行时风险和渐进迁移三个角度说明怎样选择。230 收藏 -
Go sync.Map.Swap 会原子替换键对应的值,并用 loaded 返回值告诉你键此前是否存在。本文用并发状态更新场景说明如何识别首次写入,为什么不要用先 Load 再 Store 代替,以及怎样把返回值接入审计和保护逻辑。230 收藏 -
Go TLS 通过 tls.Config.NextProtos 声明 ALPN 应用层协议候选,再用 ConnectionState.NegotiatedProtocol 读取实际协商结果。本文说明客户端、服务端配置,以及匹配、空结果和不兼容边界。230 收藏 -
通用字段读取逻辑经常同时遇到普通值、指针和接口包装值。本文只围绕 reflect.Value 的 Kind 与 Elem,给出安全归一化、nil 处理和按最终 Kind 读取字段的 Go 写法。230 收藏 -
MySQL 按分组取前几条记录时,可在派生表中用 ROW_NUMBER() 为每组排序编号,再由外层过滤 rn。本文说明稳定排序、并列名次、索引和边界测试。230 收藏 -
encoding/csv.Reader 默认会用第一条记录的字段数约束后续记录。本文说明 FieldsPerRecord 的三种配置方式,演示如何在严格校验、可变列和保留错误行之间做选择,并处理字段数量变化带来的导入问题。230 收藏 -
Go crypto/tls 的 ConnectionState 会记录 TLS 连接的协商状态,其中 DidResume 用于表示本次连接是否从既有会话成功恢复。本文说明读取时机、首次握手与会话恢复的区别,以及如何把结果用于日志和指标。230 收藏 -
Go map 可以在 range 遍历中删除已经判定过期的键,但新增键本轮是否出现没有保证。本文结合缓存清理场景说明直接删除、先收集再删除和延后新增的取舍。230 收藏 -
systemd 的 RestartSec 只负责自动重启前的等待时间,是否重启仍由 Restart 决定。本文用一个服务反复退出的场景,拆开 Restart、RestartSec 与 StartLimit 的职责,并给出可维护的配置和复查方法。230 收藏 -
Golang · Go问答 | 2星期前 | 连接池 · 性能排查 · HTTP客户端 · Go问答 · Go 连接复用 MaxIdleConns http.Transport MaxIdleConnsPerHost MaxConnsPerHost
Go http.Transport 的 MaxIdleConnsPerHost 控制每个主机保留的空闲 keep-alive 连接数,不等于并发总数或所有主机总量。本文区分相关字段,并给出长期复用 Transport 的配置方式和连接复用排查路径。230 收藏 -
提供两张原创9:16雾蓝渐变山谷手机壁纸:主图用晨雾和顶部留白适配锁屏,变体改为冷调蓝小时与斜向前景,并附完整中英文提示词、下载按钮和可复用的色彩光线调整方法。230 收藏 -
用 github.com/google/uuid 处理 UUID 字符串时,外部输入应使用 Parse 并保留 error,固定可信常量才使用 MustParse,统一输出交给 String;严格 API 外形还要额外约束。230 收藏 -
说明 Go 1.27 在 macOS 上使用 SSL_CERT_FILE 和 SSL_CERT_DIR 的规则,结合证书来源、进程环境、证书池缓存与客户端示例,解释生效条件、错误判断和恢复方法。230 收藏