Chi-Kai im .cursorrules file for Go

## 项目背景

本项目是一个高性能、可扩展的分布式通讯系统。项目名称为im, 使用·go语言开发
## 项目架构

### 整体架构
```
┌───────────────┐
│   客户端层    │  (Web/Mobile/Desktop)
└───────┬───────┘
        │
┌───────▼───────┐
│   网关服务层  │  (API Gateway/负载均衡)
└───────┬───────┘
        │
┌───────▼───────┐
│   微服务层    │
├───────────────┤
│ 1.用户服务   │
│ 2.连接服务   │
│ 3.消息服务   │
│ 4.推送服务   │
└───────┬───────┘
        │
┌───────▼───────┐
│   基础服务层  │
├───────────────┤
│ 1.注册中心   │
│ 2.配置中心   │
│ 3.消息队列   │
│ 4.缓存服务   │
└───────────────┘
```

### 架构特点
- 微服务解耦
- 水平可扩展
- 高可用设计
- 松耦合架构

## 项目技术栈

### 后端
- 语言:Go 1.21+
- 框架:
  - gRPC
  - go-zero
  - gin
- RPC:Protocol Buffers

### 中间件
- 注册中心:Etcd
- 消息队列:Kafka
- 缓存:Redis
- 数据库:PostgreSQL
- 监控:Prometheus + Grafana
- 链路追踪:Jaeger

### 部署
- 容器化:Docker
- 编排:Kubernetes
- 持续集成:GitHub Actions

## 第三方库

### 基础库
```go
package dependencies

var CoreLibs = []string{
    "github.com/gorilla/websocket",     // WebSocket支持
    "github.com/golang-jwt/jwt",        // JWT认证
    "github.com/spf13/viper",           // 配置管理
    "go.uber.org/zap",                  // 日志库
    "gorm.io/gorm",                     // ORM
    "github.com/google/uuid",           // UUID生成
}

var MicroserviceLibs = []string{
    "google.golang.org/grpc",           // gRPC框架
    "github.com/go-kratos/kratos",      // 微服务框架
    "github.com/opentracing/opentracing-go", // 链路追踪
}

var CacheAndMQLibs = []string{
    "github.com/go-redis/redis/v8",     // Redis客户端
    "github.com/Shopify/sarama",        // Kafka客户端
}
```

## 项目目录结构

```
im-system/
│
├── api/                # API定义
│   ├── proto/          # Protobuf定义
│   └── openapi/        # Swagger文档
│
├── app/                # 微服务
│   ├── user/           # 用户服务
│   ├── message/        # 消息服务
│   ├── connection/     # 连接服务
│   └── push/           # 推送服务
│
├── pkg/                # 公共包
│   ├── auth/           # 认证模块
│   ├── logger/         # 日志模块
│   ├── middleware/     # 中间件
│   └── utils/          # 工具函数
│
├── configs/            # 配置文件
├── deployments/        # 部署相关
│   ├── docker/
│   └── kubernetes/
│
├── scripts/            # 开发脚本
├── test/               # 测试用例
└── docs/               # 项目文档
```

## 项目开发规范

### 代码规范
1. 遵循官方Go编码规范
2. 使用golangci-lint进行代码静态检查
3. 代码必须有完善注释
4. 单个函数不超过50行
5. 变量命名清晰、语义化
6. 引入本地文件使用本地引用,例如:
```go
import (
    "im/pkg/logger"
)
```



### 测试要求
- 单元测试覆盖率>70%
- 所有核心服务必须有集成测试
- 使用golang/mock进行依赖模拟
docker
dockerfile
go
golang
jwt
kubernetes
postgresql
redis
+2 more

First Time Repository

go im

Go

Languages:

Dockerfile: 1.2KB
Go: 36.4KB
Shell: 9.9KB
Created: 1/9/2025
Updated: 1/9/2025

All Repositories (1)

go im