新增 Golang DDD 项目规范指南,包含项目架构、代码规范、分布式支持、监控与可观测性、错误处理、测试规范等内容,以提升项目开发的一致性和可维护性。
This commit is contained in:
107
.cursor/rules/golang-ddd-rules.mdc
Normal file
107
.cursor/rules/golang-ddd-rules.mdc
Normal file
@@ -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 管理依赖
|
||||||
|
- 定期更新依赖版本
|
||||||
|
- 依赖版本锁定
|
||||||
|
- 依赖安全检查
|
||||||
|
|
||||||
|
## 部署规范
|
||||||
|
- 容器化部署
|
||||||
|
- 环境配置管理
|
||||||
|
- 服务编排
|
||||||
|
- 监控告警配置
|
||||||
Reference in New Issue
Block a user