Go 开发规范 参考来源: Effective Go、Go Code Review Comments、uber-go/guide --- 工具链 --- 命名约定 | 类型 | 规则 | 示例 | |------|------|------| | 包名 | 小写单词,不用下划线 | , | | 变量/函数 | 驼峰命名,缩写词一致大小写 | , | | 常量 | 导出用驼峰,私有可驼峰或全大写 | | | 接口 | 单方法用方法名+er | , | 禁止 : , , 等无意义包名 --- import 顺序 --- 错误处理 必须处理错误 ,不能忽略: 错误包装 : 使用 保留错误链,用 / 检查 --- 并发编程 基本原则 : - 优先使用 channel 通信 - 启动 goroutine 前考虑:谁来等待它?怎么停止它? - 使用 控制生命周期 数据竞争 : 使用 检测 --- 测试规范 --- 性能优化 | 陷阱 | 解决方案 | |------|---------| | 循环中拼接字符串 | 使用 | | 未预分配 slice | | | N+1 查询 | 批量查询 + 预加载 | | 无限制并发 | 使用 semaphore 或 worker pool | | Raw SQL 别名用了保留字 | 避免 / / / 等 MySQL 保留字做别名 | --- 项目结构 -…