GoForum🌐 V2EX

精心打造一款 Go 语言 Gin 框架 DDD 脚手架,适合指导 AI 快速搭建项目

jarryli · 2026-04-07 11:39 · 0 次点赞 · 2 条回复

如何指导 AI 编程非常重要,我们需要给 AI 提供范本,这样 AI 生成的代码才是我们想要的。

一个开箱即用的 DDD (领域驱动设计) Go 脚手架,基于 Gin + RocketMQ ,包含双数据库、统一响应、中间件与事件驱动示例。

这是什么

Gin-Framework-DDD 是一个面向 Go 语言的 DDD 工程脚手架,帮你快速搭建符合 DDD 分层规范的 Web 服务。项目内置用户与订单示例、领域事件与 RocketMQ 生产/消费、邮件通知示例、统一响应与中间件,适合作为团队工程模板。

功能与 practice-projects/gin-mvc对齐,可以对比下DDDMVC工程目录结构的差异。

为什么要用 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

2 条回复
crime1024 · 2026-04-07 11:39
#1

好重度,有轻量的吗

jarryli · 2026-04-07 11:49
#2

@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

添加回复
你还需要 登录 后发表回复

登录后可发帖和回复

登录 注册
主题信息
作者: jarryli
发布: 2026-04-07
点赞: 0
回复: 0