Go教程技术文章
-
Goose 默认把单个 SQL 迁移放进事务;本文说明如何用 NO TRANSACTION 让指定文件绕过事务,并处理 Up、Down、失败恢复和上线检查。433 收藏 -
Goose 默认按分号识别 SQL 语句,存储过程内部的多个分号可能导致迁移被拆开。本文说明如何用 StatementBegin 和 StatementEnd 包住完整过程,并区分 Up、Down、NO TRANSACTION 与 MySQL multiStatements 的职责。225 收藏 -
用 embed.FS 把 Goose SQL 迁移打进 Go 程序,说明目录保留、SetBaseFS、数据库方言与连接配置,提供完整迁移命令,并解释重新构建、只读文件和发布执行责任。456 收藏 -
Go sqlx 组合命名参数与 IN 列表时,应先用 Named 把 :name 转为问号参数,再用 In 展开切片,最后按数据库驱动调用 Rebind。本文说明调用顺序、空切片边界和可复用查询写法。301 收藏 -
Gock 可以为同一个 HTTP 方法和路径注册多条模拟规则,并按 FIFO 顺序消费不同响应。本文用 Times(1) 组合状态码与 JSON,说明连续请求、规则耗尽、未匹配判断和清理边界。412 收藏 -
自定义http.Client需要在请求前安装Gock拦截器。本文给出无真实网络回退的完整Go测试示例,说明实例接线、请求匹配、RestoreClient恢复与全局模拟清理的不同职责。303 收藏 -
Go Testify 用 mock.Call.Run 接收 Arguments,在回调中取出并修改指针参数;本文区分 Run 与 Return,说明类型匹配、nil 防护和值参数边界。297 收藏 -
用 Gock 为指定主机注册 HTTP mock,说明主机匹配、客户端拦截、未匹配请求策略和测试清理边界。252 收藏 -
Go Testify 的 mock.InOrder 可以把多个 *mock.Call 组合成相对顺序约束。本文用准备、保存、审计的测试场景说明如何保留参数、调用次数与 AssertExpectations,并划清组外调用和并发流程不应强行绑定的边界。143 收藏 -
Go Testify 的 mock 期望遇到复杂请求结构体时,不必比较全部字段。本文用 MatchedBy 只匹配用户编号、动作等业务关键字段,并拆解值类型、指针、nil 与函数签名边界。264 收藏 -
Lumberjack主动轮转成功后,原日志器可以继续通过同一实例写入新活动文件。本文提供完整Go示例,说明对象与句柄关系、并发协调、上层缓冲、轮转失败和后台归档的边界。353 收藏 -
Go Lumberjack 用 MaxBackups 限制历史日志份数、用 MaxAge 按轮转时间限制保留天数;本文给出组合配置、清理时机和容量估算边界。390 收藏 -
用 Go Lumberjack v2 的 MaxSize 按文件大小触发日志轮转,并梳理 MaxBackups、MaxAge、Compress 与单进程写入边界。300 收藏 -
用Zap的两个Core和互斥等级条件,将Info、Warn写入app.log,Error及以上写入error.log。提供完整初始化代码,说明内部错误出口、文件同步关闭与轮转限制。213 收藏 -
介绍 Go Zap 如何使用 AtomicLevel 在运行期动态调整日志最低等级,涵盖 Core 接入、SetLevel、文本解析、子 Logger 共享和生产权限边界。433 收藏