Files
oidc-server/.cursor/rules/coding-standards.mdc

53 lines
1.3 KiB
Plaintext

---
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 规范的安全建议