diff --git a/.cursor/rules/golang-ddd-rules.mdc b/.cursor/rules/golang-ddd-rules.mdc new file mode 100644 index 0000000..76a36dc --- /dev/null +++ b/.cursor/rules/golang-ddd-rules.mdc @@ -0,0 +1,107 @@ +--- +description: +globs: +alwaysApply: false +--- +# Golang DDD 项目规范指南 + +## 项目架构规范 + +### 1. 技术栈要求 +- 使用 Golang 作为主要开发语言 +- 使用 Beego 作为 Web 框架 +- 代码必须通过 golint 和 golangci-lint 检查 +- 遵循 DDD (Domain-Driven Design) 架构模式 + +### 2. 目录结构规范 +``` +internal/ +├── domain/ # 领域层 +│ ├── entity/ # 领域实体 +│ ├── repository/ # 仓储接口 +│ └── service/ # 领域服务 +├── infrastructure/ # 基础设施层 +│ ├── persistence/ # 持久化实现 +│ ├── messaging/ # 消息队列 +│ └── cache/ # 缓存实现 +├── application/ # 应用层 +│ ├── dto/ # 数据传输对象 +│ ├── service/ # 应用服务 +│ └── assembler/ # DTO转换器 +├── interfaces/ # 接口层 +│ ├── http/ # HTTP接口 +│ ├── grpc/ # gRPC接口 +│ └── middleware/ # 中间件 +└── common/ # 公共组件 + ├── config/ # 配置管理 + ├── logger/ # 日志管理 + └── utils/ # 工具函数 +``` + +### 3. 代码规范 +- 所有代码必须放在 `internal` 目录下 +- 遵循 Go 标准项目布局 +- 使用接口进行依赖倒置 +- 每个包必须有清晰的职责划分 +- 使用依赖注入管理依赖关系 + +### 4. 分布式支持 +- 支持分布式部署 +- 实现优雅关闭机制 +- 支持 Kubernetes 和 Docker Swarm 部署 +- 实现分布式链路追踪 +- 支持服务注册与发现 + +### 5. 监控和可观测性 +- 集成 Prometheus 指标收集 +- 实现健康检查接口 +- 支持分布式追踪(如 Jaeger) +- 完善的日志记录系统 + +### 6. 错误处理 +- 使用自定义错误类型 +- 统一的错误处理机制 +- 错误码规范 +- 错误日志记录规范 + +### 7. 测试规范 +- 单元测试覆盖率要求 > 80% +- 集成测试覆盖关键业务流程 +- 性能测试基准 +- 测试用例命名规范 + +### 8. 文档规范 +- API 文档使用 Swagger +- 代码注释规范 +- 架构文档维护 +- 部署文档更新 + +### 9. 安全规范 +- 敏感配置加密 +- 接口认证授权 +- 数据加密传输 +- 防注入攻击 + +### 10. 性能规范 +- 接口响应时间要求 +- 并发处理能力 +- 资源使用限制 +- 缓存策略 + +## 开发流程 +1. 遵循 Git Flow 工作流 +2. 代码审查要求 +3. CI/CD 流程 +4. 版本发布规范 + +## 依赖管理 +- 使用 Go Modules 管理依赖 +- 定期更新依赖版本 +- 依赖版本锁定 +- 依赖安全检查 + +## 部署规范 +- 容器化部署 +- 环境配置管理 +- 服务编排 +- 监控告警配置