--- description: globs: alwaysApply: false --- # 代码规范和最佳实践 ## Go 编码规范 ### 命名约定 - 使用驼峰命名法 - 包名使用小写 - 导出的标识符必须以大写字母开头 - 接口名通常以 -er 结尾,如 `Handler`、`Service` 等 ### 错误处理 - 始终检查错误返回值 - 使用有意义的错误消息 - 在适当的抽象层处理错误 ### 项目特定规范 #### Handler 层 参考 [handlers/admin_handler.go](mdc:handlers/admin_handler.go): - Handler 结构体应包含所需的服务依赖 - 使用依赖注入模式初始化 Handler - HTTP 响应应使用适当的状态码 - 统一使用 gin.H 作为模板数据传递 #### Service 层 - 实现核心业务逻辑 - 保持服务方法的单一职责 - 避免在服务层处理 HTTP 相关逻辑 #### 中间件 - 保持中间件的通用性和可重用性 - 明确记录中间件的用途和影响 - 合理使用中间件链 ### 测试规范 - 为所有关键功能编写单元测试 - 使用表驱动测试方法 - 测试文件命名为 `xxx_test.go` - 确保测试覆盖主要的成功和失败场景 ### 安全最佳实践 - 所有用户输入必须经过验证 - 密码必须加密存储 - 使用 HTTPS - 实现适当的访问控制 - 遵循 OAuth2 和 OIDC 规范的安全建议