Go问答技术文章
-
Go os.OpenFile 的 perm 不是最终权限。本文用 umask、stat、UID/GID 和挂载状态拆解容器中权限看似失效的原因,并给出最小权限修复方法。366 收藏 -
Go 测试分层的关键不在测试数量,而在依赖边界:单元测试隔离进程内规则,集成测试验证真实数据库或协议适配,端到端测试确认关键业务链路闭环。本文用订单服务和 Go testing 示例给出判断表、数据清理与失败定位方法。366 收藏 -
Koanf 默认允许后加载的同名键覆盖前值,类型不同也不会自动报错;开启 StrictMerge 后,冲突会在 Load 时返回错误。本文用 map、字符串和切片说明合并边界,并给出多来源配置的落地策略。366 收藏 -
Go http.Server.Shutdown 会先关闭监听器和空闲连接,再等待活动请求结束;长请求、无超时下游和 hijack 长连接会让关闭看起来挂起。本文用一个小型服务说明连接边界、退出预算与排查方法。366 收藏 -
Go HTTP/2 出现连接中断、请求卡住或帧错误时,可以先用 GODEBUG 打开 net/http 的调试日志。本文按开关作用范围、日志粒度和排障顺序说明怎样取得有效线索。366 收藏 -
Go 解码无填充标准 Base64 应按协议选择 RawStdEncoding,而非随意删除等号。本文解释填充分组、解码器选择和错误时的部分数据,给出入口封装,并说明兼容迁移、Strict 与空白处理的范围。366 收藏 -
strings.Reader.Seek 的 offset 是字节偏移,whence 决定它相对开头、当前位置还是结尾计算。本文用 UTF-8、边界错误和可重复读取示例说明为什么会读到错误位置,以及如何检查返回位置和错误。366 收藏 -
Go bidirule 的流式检查必须在标签结束后确认结尾约束。文章说明 atEOF、Close 错误及跨块状态,并给出暂存输出后再交付的完整写法。366 收藏 -
Go go-echarts的普通时间坐标轴用于定位数据点,ECharts timeline用于切换多份图表快照。本文用Go示例和原生配置区分两者,并说明版本封装、时间单位与集成边界。366 收藏 -
通过可取消的四模式实验区分Go channel接收阻塞、nil通道和关闭状态,结合通道身份、发送路径与等待关系排查,并说明超时、len和goroutine栈能证明的范围。366 收藏 -
解释 bytes.Buffer 的 Available、Len、Cap 与 Grow 如何配合,给出可验证的追加空间判断,以及 AvailableBuffer 的使用边界。365 收藏 -
Golang · Go问答 | 2星期前 | net/http · HTTP客户端 · Go问答 · Transport gzip Content-Encoding Go 自动解压 Response Body
Go 的默认 Transport 可能已经把 gzip 响应解压到 Response.Body,并删除 Content-Encoding。读取内容为空时,应先区分自动解压、显式请求 gzip 和 Body 被重复读取这三条路径,再选择直接读取或手动创建 gzip.Reader。365 收藏 -
Go select 中的 default 会让没有就绪通信时立即返回。把它放进无限循环会形成忙等,持续消耗 CPU。本文用一个小型通道消费者区分阻塞等待、周期处理、取消退出和一次性非阻塞探测的正确写法。365 收藏 -
Go x/text/number 的 Scale 和 IncrementString 只改变数字的格式化结果,不会回写原始变量。本文用对照示例说明显示舍入、业务计算和输出边界应该怎样分开。365 收藏 -
区分 go-pretty 行列 AutoMerge 的作用范围,用最小 Go 示例说明重复内容的展示合并,并解释分组可读性、格式化文本及 CSV、Markdown 输出的边界。365 收藏