Go语言技术文章
-
项目同时维护 mock、stringer 和资源生成指令时,go generate -run 可以按指令完整原文的正则匹配只执行目标任务。本文从一次误触发现场讲清匹配范围、精确写法、预览排查和防复发约定。453 收藏 -
Golang · Go问答 | 5天前 | 错误处理 · Go问答 · 流式解码 io.Reader CorruptInputError io.ErrUnexpectedEOF Go base64 base64.NewDecoder
base64.NewDecoder 是流式读取器,遇到截断输入时可能先返回已经完整解出的字节,再在后续读取中报告 io.ErrUnexpectedEOF。本文拆解 4 字符分组、n 与 err 的关系,以及如何避免把部分数据误当成完整结果。453 收藏 -
fmt.Errorf 中的 %w 会保留底层错误并建立可遍历的错误链,%v 只把错误格式化为消息文本。本文用最小示例说明 errors.Is 找不到原始错误的原因、排查方法和自定义包装边界。453 收藏 -
CNCF 近期讨论把 Software Carbon Intensity 与 OpenTelemetry 语义约定结合起来。本文区分 SCI 的测量对象、OpenTelemetry 的交换角色和共享基础设施归因难点,并给出当前可执行的观察路径。453 收藏 -
Go TLS 握手卡住时,不要只给 TCP 建连设置超时。通过 DialContext 约束建连、HandshakeContext 约束 TLS 握手,并在失败路径关闭连接,可以让取消信号真正覆盖卡住的握手阶段。453 收藏 -
Go 1.21 起可以用 maps.Copy 将默认配置与覆盖配置合并到目标 map:src 的同名键覆盖 dst,目标映射会被原地修改。本文说明调用方向、nil 目标、浅拷贝和旧版本兼容写法。453 收藏 -
使用sql.NullTime接收database/sql查询中的NULL时间,利用Time与Valid区分缺失、零时间和具体时间,并说明展示与回写边界。452 收藏 -
动漫岛产品站展示追番、今日新更和APP下载入口。本文按页面可见信息,说明下载前如何核对Android版本、联系入口与备案信息,并区分产品介绍和实际使用边界。452 收藏 -
解释 net.Resolver.PreferGo 与系统原生解析器的选择边界,梳理 GODEBUG、构建标签和系统配置的影响,并给出自定义 DNS 与双路径诊断写法。452 收藏 -
动漫岛产品站将自己描述为看番、读漫画的小天地,并在首页使用“全站免费无广”等宣传语。本文按页面可见事实说明这些话术能证明什么、不能证明什么,以及 APP 功能提示的核对边界。452 收藏 -
Go crypto/tls 的 InsecureSkipVerify 会同时跳过证书链和主机名校验。本文说明它的中间人风险,并给出 RootCAs 与 VerifyConnection 的安全替代方案。452 收藏 -
Go 的 exec.Cmd 可以通过 ExtraFiles 把父进程已经打开的管道或套接字传给子进程。关键规则是 ExtraFiles[i] 在子进程中从文件描述符 3+i 开始,而不是沿用父进程原来的编号。452 收藏 -
本文说明如何用 mount --bind 建立目录映射,再用 remount,bind,ro 只限制目标入口,并结合 findmnt、挂载命名空间与 systemd 固化服务级只读视图。452 收藏 -
Go 向已关闭通道发送会 panic,增大缓冲、状态探测和 sync.Once 都不能保证安全。本文给出多发送者由协调者等待后关闭的完整示例,并区分取消通知、数据结束与完成信号。452 收藏 -
通过 ip rule、ip route show、ip route get 和 fibmatch 逐层读取 Linux 策略路由的命中路径,覆盖源地址、入口接口、fwmark、路由表与终止类型等排障边界。451 收藏