---
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 管理依赖
- 定期更新依赖版本
- 依赖版本锁定
- 依赖安全检查

## 部署规范
- 容器化部署
- 环境配置管理
- 服务编排
- 监控告警配置
