EasyVQD/docs/1_introduce.md
2026-01-15 19:32:33 +08:00

73 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# GoDDD企业级 REST API 开发模板
## 项目简介
[GoDDD](https://github.com/ixugo/goddd) 是一个专注于 REST API 开发的企业级模板,旨在为 Go 开发者提供完整的 CURD 解决方案。它采用领域驱动设计DDD理念通过模块化单体架构让开发者能够快速开始项目专注于业务开发。
## 为什么选择 GoDDD
作为一名 Go 开发者,你是否遇到过这些问题:
- 项目结构混乱,随着业务增长变得越来越难以维护
- 新成员加入后需要很长时间才能理解项目
- 团队协作时经常出现代码冲突
- 需要重复编写大量相似的 CRUD 代码
- 错误处理方式不统一,日志记录混乱
- 项目启动时需要配置大量基础设施
GoDDD 正是为了解决这些问题而设计的。它提供了一个清晰的项目结构和完整的开发工具链,包括:
- 模块化的项目结构,让代码组织更清晰
- 统一的错误处理和日志记录
- 自动化的代码生成工具 [godddx](https://github.com/ixugo/godddx)
## 技术架构
### 架构设计理念
在传统的 MVC 单体架构中,随着业务规模的增长,项目会变得越来越臃肿,导致团队开发效率降低,新成员也难以快速理解整个系统。
GoDDD 采用模块化单体架构,这种架构既保留了单体架构的简单性,又吸收了微服务架构的模块化优势。通过将业务拆分为多个独立的领域模块(如用户领域、银行领域、商品领域等),每个领域都包含完整的:
- API接口层
- Core业务核心
- Store数据存储
这种设计让不同团队可以独立开发和维护各自的领域模块,有效减少代码冲突和开发混乱。与微服务相比,这种模块化方式使代码更简洁、更易于测试和维护。
更重要的是,当某个领域模块的规模超出预期时,团队可以轻松地将其提取为独立的微服务,实现平滑的架构演进。
### 技术栈
- **Web 框架**Gin
- **ORM**GORM
- **架构设计**领域驱动设计DDD
- **代码生成**:支持自动生成代码
- **消息处理**:使用 [NSQite](github.com/ixugo/nsqite) 支持事件总线/事务消息
## 项目结构
```
.
├── cmd # 可执行程序
├── configs # 配置文件
├── makefile # 提供构建/镜像/工具链等命令
├── internal # 私有业务
│ ├── conf # 配置模型
│ ├── core # 业务领域
| ├── domain # 公共领域,提供了一些模块化的组件,用于快速开发
| ├── data # 数据库初始化逻辑
│ └── web # 公共 Web 层
└── pkg # 依赖库
```
## 应用案例
- GB/T28181 视频平台github.com/gowvp/gb28181
## 总结
对于初级 Go 开发者来说GoDDD 提供了一个清晰的项目结构和完整的开发工具链,让你能够快速上手企业级项目开发。它解决了项目结构混乱、团队协作困难、代码重复等常见问题,让开发者能够专注于业务逻辑的实现。
如果你正在寻找一个能够帮助你快速构建企业级 REST API 的框架GoDDD 绝对值得一试。它的模块化设计和完整的工具链,能够显著提升你的开发效率和代码质量。