精心打造一款 Go 语言 Gin 框架 DDD 脚手架,适合指导 AI 快速搭建项目
如何指导 AI 编程非常重要,我们需要给 AI 提供范本,这样 AI 生成的代码才是我们想要的。
一个开箱即用的 DDD (领域驱动设计) Go 脚手架,基于 Gin + RocketMQ ,包含双数据库、统一响应、中间件与事件驱动示例。
这是什么
Gin-Framework-DDD 是一个面向 Go 语言的 DDD 工程脚手架,帮你快速搭建符合 DDD 分层规范的 Web 服务。项目内置用户与订单示例、领域事件与 RocketMQ 生产/消费、邮件通知示例、统一响应与中间件,适合作为团队工程模板。
功能与 practice-projects/gin-mvc对齐,可以对比下DDD与MVC工程目录结构的差异。
为什么要用 DDD ?
很多人认为 Go 语言没必要用 DDD ,毕竟它和 Python 、JS 一样轻巧灵活,用 MVC 就足够了。确实,大多数场景下 MVC 完全够用。工程化无非是把接口处理、业务逻辑、数据处理区分开,让各部分各司其职,方便维护和扩展。DDD 相对更适合中大型项目:如果项目有几十个模块、上百个接口,用 DDD 设计会更合适;模块少、接口不多的话,简单分层就够了。
总之,是否采用 DDD 和语言无关,只跟业务规模有关。一个东西变复杂了,就需要用一些机制去规范它,才能更好掌控。
源码地址:https://github.com/microwind/design-patterns/tree/main/practice-projects/gin-ddd
项目目录:gin-ddd/
核心特点
- 严格 DDD 四层架构:领域层、应用层、基础设施层、接口层
- Gin Web 框架:高性能 HTTP 服务
- 事件驱动:领域事件 + RocketMQ 生产者/消费者
- 双数据库支持:用户库 + 订单库可独立配置(默认 MySQL + PostgreSQL )
- 统一响应格式:Response 封装,错误码集中管理
- 全局中间件:日志、恢复、跨域
- 可选邮件通知:订单创建事件驱动 SMTP 邮件发送
技术栈
| 技术 | 版本 | 说明 |
|---|---|---|
| Go | 1.21+ | 语言版本 |
| Gin | 1.9+ | HTTP 框架 |
| RocketMQ | 5.3+ | 事件消息队列 |
| MySQL | 8.0+ | 用户库默认 |
| PostgreSQL | 14+ | 订单库默认 |
| YAML | - | 配置文件格式 |
更多架手架: https://github.com/microwind/design-patterns
@crime1024 由的。MVC 轻量些,各种随你挑,作为 AI 的范本,我自己就这么用的。 Gin 框架: https://github.com/microwind/design-patterns/tree/main/practice-projects/gin-mvc 各种语言: https://github.com/microwind/design-patterns/tree/main/mvx/mvc
好重度,有轻量的吗