
线上
升级单个依赖用goget@latest,确保项目依赖干净准确必须执行gomodtidy;前者精准更新版本,后者扫描代码并同步go.mod/go.sum,二者分工协作不可替代。
应统一错误响应结构为含code、message、request_id的APIError,禁用http.Error;通过中间件+context透传request_id;panic时recover并走统一...
Go错误必须显式判断,不可忽略;应使用%w包装、errors.Is判断、统一HTTP错误映射,并在测试中覆盖各类错误场景。
Go测试需覆盖异常场景,必须用errors.Is/As断言具体错误类型,为每个公开错误变量和校验函数补失败路径测试,主动构造panic、nil输入等边界条件,并在表驱测试中显式声明expectErro...
Go中需显式检查指针是否为nil再解引用,因nil指针解引用会直接panic;所有可能为nil的指针(如函数返回、map查找、结构体字段等)都必须判空,常见场景包括json.Unmarshal后、HT...
动态建表需确保安全可控:通过白名单校验字段类型与标识符,严格映射MySQL类型,强制表名前缀与正则校验,兼容不同MySQL版本语法,并执行权限检查与SQL预览。
Go错误处理核心是显式处理、保留错误链、避免panic滥用:必须检查err并分流,用%w封装上下文,defer前确保resp非空,遵循“errorisvalue”哲学。
Go项目接入GitHubActions需分构建、测试、打包、推送四阶段:用setup-go固定1.22版本,docker/build-push-action显式指定linux/amd64平台,镜像打s...
正确姿势是用os.OpenFile配合os.O_APPEND|os.O_WRONLY|os.O_CREATE标志,确保原子性追加;避免单独使用O_APPEND、误加O_TRUNC或用os.Seek+W...
主从复制通过读写分离缓解读多写少压力,但需应用层路由、处理复制延迟、避免从库误写,并注意跨机房容灾限制。