精心打造一款 Go 语言 Gin 框架 DDD 脚手架,适合指导 AI 快速搭建项目 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
如果想在 V2EX 获得更好的推广效果,欢迎了解 PRO 会员机制:
pro/about
jarryli

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

  •  
  •   jarryli 17 天前 1066 次点击

    如何指导 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

    6 条回复    2026-04-07 17:14:36 +08:00
    crime1024
        1
    crime1024  
       17 天前
    好重度,有轻量的吗
    jarryli
        2
    jarryli  
    OP
       17 天前
    @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
    beidounanxizi
        3
    beidounanxizi  
       17 天前 via Android
    javaer 程序员最爱的设计模式
    coconutwater
        4
    coconutwater  
       17 天前   1
    @Livid op 从 3.18 开始频繁在发帖和回复中参杂他个人的 github 项目链接
    ASHYWHISPER
        5
    ASHYWHISPER  
       17 天前
    单人负责一个项目真爽,直接 DTO 进来到 model 完事
    jarryli
        6
    jarryli  
    OP
       17 天前
    @coconutwater 这位兄弟,我只是想在这个变革的时代能帮助到更多的程序员。若有打扰,敬请原谅。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     945 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 39ms UTC 22:40 PVG 06:40 LAX 15:40 JFK 18:40
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86