蓝梦 是一个综合性的 Go 语言社区实践项目,涵盖了从基础到进阶的多种技术栈实现。项目包含了一个完整的社区平台应用(lmbook)以及多个技术模块的示例代码,适合 Go 语言学习者、开发者参考使用。
- 提供高质量的 Go 语言实践代码示例
- 涵盖主流技术栈:Gin、GORM、gRPC、WebSocket、MongoDB、Elasticsearch 等
- 展示微服务架构、Kubernetes 部署、监控运维等生产级实践
basic-go/
├── lmbook/ # 核心应用:社区平台后端服务
│ ├── account/ # 账户管理模块
│ ├── article/ # 文章管理模块
│ ├── comment/ # 评论模块
│ ├── follow/ # 关注关系模块
│ ├── im/ # 即时通讯模块
│ ├── payment/ # 支付模块
│ ├── ranking/ # 排行榜模块
│ ├── reward/ # 奖励模块
│ └── ...
├── gin/ # Gin 框架示例
├── gorm/ # GORM ORM 示例
├── grpc/ # gRPC 通信示例
├── websocket/ # WebSocket 实时通信示例
├── wire/ # Google Wire 依赖注入示例
├── mongodb/ # MongoDB 操作示例
├── es/ # Elasticsearch 搜索示例
├── sarama/ # Kafka Sarama 客户端示例
├── opentelemetry/ # OpenTelemetry 可观测性示例
├── cronk8s/ # 定时任务与 K8s 集成示例
└── k6/ # 性能测试示例
| 类别 | 技术 |
|---|---|
| 前端框架 | Next.js + React + TypeScript |
| 前端 UI | Ant Design Pro Components |
| 前端富文本 | wangEditor |
| Web 框架 | Gin |
| ORM | GORM |
| RPC | gRPC |
| 依赖注入 | Google Wire |
| 配置管理 | Viper |
| 日志 | Zap |
| 数据库 | MySQL, Redis, MongoDB |
| 搜索 | Elasticsearch |
| 消息队列 | Kafka (Sarama) |
| 监控 | Prometheus, OpenTelemetry, Zipkin |
| 容器化 | Docker, Kubernetes |
| 测试 | k6 性能测试 |
- Go: 1.26+ (推荐 1.26.2+)
- MySQL: 5.7+ 或 8.0+
- Redis: 6.0+
- Docker & Docker Compose (可选,用于容器化部署)
# 1. 克隆项目
git clone <your-repository-url>
cd basic-go
# 2. 下载依赖
make deps
# 或
go mod download
# 3. 运行 lmbook 主应用(以 account 模块为例)
cd lmbook/account
go run main.go# 1. 进入前端目录
cd lmbook-fe
# 2. 安装依赖
npm install
# 或
yarn install
# 3. 启动开发服务器
npm run dev
# 或
yarn dev
# 应用将运行在 http://localhost:3000# 1. 克隆项目
git clone <your-repository-url>
cd basic-go/lmbook
# 2. 使用 Docker Compose 启动所有服务(MySQL、Redis、应用)
docker-compose up -d
# 3. 查看运行状态
docker-compose ps
# 4. 查看日志
docker-compose logs -f app# 1. 创建 MySQL 和 Redis 服务
kubectl apply -f lmbook/k8s-lmbook-mysql.yaml
kubectl apply -f lmbook/k8s-lmbook-redis.yaml
# 2. 部署应用
kubectl apply -f lmbook/k8s-lmbook-service.yaml
kubectl apply -f lmbook/k8s-lmbook-ingress.yaml
# 3. 查看 Pod 状态
kubectl get pods -n lmbookcd gin
go run main.go访问:http://localhost:8080/hello
API 示例:
# 基础路由
curl http://localhost:8080/hello
# 路径参数
curl http://localhost:8080/users/张三
# 查询参数
curl http://localhost:8080/order?id=12345cd lmbook/account
go run main.go应用默认启动在 :8080 端口。
项目提供了 Makefile 来简化常用操作:
# 生成 Wire 依赖注入代码
make generate
# 或
make mock
# 生成 gRPC 代码(使用 buf)
make grpc
# 生成 gRPC Mock 代码
make grpc_mock
# 运行端到端测试(会自动启动 docker-compose)
make e2e
# 仅启动 e2e 测试环境
make e2e_up
# 停止 e2e 测试环境
make e2e_down项目使用 buf 管理 Protocol Buffer 定义和代码生成。
# 生成 gRPC 代码(推荐)
make grpc
# 生成 gRPC Mock 代码
make grpc_mock
# 手动使用 buf 生成
buf generate lmbook/api/protoProto 文件位于 lmbook/api/proto/ 目录下,包含:
article/- 文章服务interactive/- 互动服务(点赞、收藏等)payment/- 支付服务follow/- 关注服务
---
## 🤝 参与贡献
我们非常欢迎你的贡献!请按照以下步骤参与:
### 贡献流程
1. **Fork 本仓库** 到你的 GitHub/Gitee 账号
2. **克隆你的 Fork**
```bash
git clone https://gitee.com/your-username/basic-go.git
cd basic-go
-
创建功能分支
git checkout -b feat/your-feature-name # 或修复 bug git checkout -b fix/bug-description -
提交代码
git add . git commit -m "feat: 添加 XXX 功能" # 或 git commit -m "fix: 修复 XXX 问题"
-
推送到你的 Fork
git push origin feat/your-feature-name
-
创建 Pull Request
- 到原仓库创建 PR
- 描述你的改动
- 等待代码审查
- 遵循 Go 官方代码风格(使用
gofmt格式化) - 提交信息遵循 Conventional Commits 规范
- 添加必要的注释和文档
- 确保新增代码通过测试
请在 Issuer 中详细描述:
- 复现步骤
- 期望行为
- 实际行为
- 环境信息(OS、Go 版本等)
- ✅ 模块化设计:每个技术栈都有独立的示例模块,便于学习和参考
- ✅ 生产级实践:lmbook 模块展示了完整的社区平台架构设计
- ✅ 容器化支持:提供完整的 Docker 和 Kubernetes 部署配置
- ✅ 可观测性:集成 Prometheus 和 OpenTelemetry,便于监控和追踪
- ✅ 依赖注入:使用 Google Wire 实现优雅的依赖管理
- ✅ 多语言 README:支持中文和英文文档
- 使用
README_XXX.md来支持不同的语言,例如README_en.md,README_zh.md - Gitee 官方博客 blog.gitee.com
- 你可以 https://gitee.com/explore 这个地址来了解 Gitee 上的优秀开源项目
- GVP 全称是 Gitee 最有价值开源项目,是综合评定出的优秀开源项目
- Gitee 官方提供的使用手册 https://gitee.com/help
- Gitee 封面人物是一档用来展示 Gitee 会员风采的栏目 https://gitee.com/gitee-stars/
本项目采用 MIT 开源协议 - 查看 LICENSE 文件了解详情。
如有任何问题或建议,欢迎通过以下方式联系:
- 提交 Issuer
- 创建 Pull Request
- 发送邮件至:[2316364297@qq.com]
⭐ 如果这个项目对你有帮助,请给它一个 Star!⭐