Go语言技术文章
-
Go 使用 os.File 更新配置或状态文件时,先在同目录临时文件中完整写入并 Sync,再关闭文件并 Rename,既避免半文件,也能清楚区分原子替换与断电持久化边界。448 收藏 -
Golang · Go教程 | 2天前 | 配置 · go · TLS · 网络安全 · TLS 1.3 Go crypto/tls最低TLS版本 tls.Config.MinVersion TLS 1.2 Go TLS配置 ConnectionState Version
围绕 Go crypto/tls 的 tls.Config.MinVersion,说明 TLS 1.2 与 TLS 1.3 的最低版本选择、客户端 Transport 和服务端连接绑定方式,以及用 ConnectionState 核对协商结果的迁移边界。321 收藏 -
Golang · Go问答 | 2天前 | 错误处理 · 事务 · database/sql · Go问答 · Go database/sql Tx Go事务重试 Go死锁处理 Go序列化冲突 database/sql错误分类
围绕 Go database/sql Tx 讲清可重试并发冲突与业务错误的边界:驱动错误映射、单次事务回滚、事务外有限重试以及提交状态未知时的幂等处理。218 收藏 -
通过 httptest.NewServer 与自定义 RoundTripper 组合,记录测试客户端请求,并稳定覆盖固定 500 响应和传输错误分支。132 收藏 -
围绕 Go database/sql Tx 讲清异常路径统一回滚的写法:用 defer 兜底、事务内统一使用 Tx、正确处理 Commit 错误,并给出资源释放检查清单。448 收藏 -
用 Go httptest.NewRequest 构造带指定 Host 的服务端请求,区分绝对 URL、Request.Host 与 Header 中 Host 的边界,并给出 handler 测试中的断言写法和常见陷阱。366 收藏 -
用 Go database/sql 设计业务事务时,把 BeginTx、Commit 和 Rollback 放在用例外层,让仓储函数只接收 Tx 并返回错误,避免事务职责分散。215 收藏 -
用 Go httptest.NewServer 构造一个可控的本地 HTTP 服务,把真实上游替换成固定 Handler,再围绕请求路径、请求头、状态码和响应体组织稳定测试。132 收藏 -
Golang · Go问答 | 2天前 | database/sql · Go database/sql Rows Go Rows Scan字段顺序 Go SQL查询列顺序 Go rows.Columns排查 Go rows.Err错误处理
Go database/sql 使用 Rows 时,Scan 的目标参数必须按 SELECT 返回列的顺序排列。本文从列数、列名、类型和 NULL 四个方向排查错位,并补上 Rows 的 Close 与 Err 收尾检查。359 收藏 -
Golang · Go教程 | 2天前 | 连接池 · Go教程 · net/http · HTTP客户端 · Go net/http Client Go Transport拆分 Go多上游HTTP客户端 Go连接池隔离 Go HTTP代理配置
Go net/http 访问多个上游时,不要直接改全局 DefaultTransport。本文用公共基线加独立 Transport 的方式拆分代理、TLS、连接池和超时边界。323 收藏 -
讲清 Go database/sql Rows 读取 SQL NULL 的正确方式:用 NullString、NullInt64 或 sql.Null[T] 接住空值,结合 Valid 判断、Rows.Err 和 Close 保留完整数据语义。254 收藏 -
围绕 Go net/http Client 讲清 Transport 复用、Response Body 关闭、读到 EOF、状态码判断和异常场景检查清单,给出可复用的请求封装方案。232 收藏 -
Go 使用 database/sql 查询多行数据时,Rows 既是遍历结果的对象,也是连接释放边界的一部分。本文用一套可复用的收尾写法覆盖正常读取、Scan 失败、提前返回、上下文取消和连接池排查。294 收藏 -
用 Go net/http Client 的 CheckRedirect 比较重定向前后的 scheme、主机和端口,在信任边界变化时清理 Authorization、Cookie 与自定义 API 密钥,并说明默认转发、307/308 请求体和 ErrUseLastResponse 的处理边界。110 收藏 -
Golang · Go问答 | 2天前 | 错误处理 · 文件上传 · Go问答 · Go multipart.Reader 临时上传文件 上传失败清理 multipart.Part Form.RemoveAll
Go multipart.Reader 流式上传要把临时文件当作未提交资源管理:单个 Part 写入失败立即删除当前文件,请求后续部件失败则回滚已落盘清单;使用 ReadForm 时改用 Form.RemoveAll。387 收藏