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

4 月 7 日
 jarryli

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

核心特点

技术栈

技术 版本 说明
Go 1.21+ 语言版本
Gin 1.9+ HTTP 框架
RocketMQ 5.3+ 事件消息队列
MySQL 8.0+ 用户库默认
PostgreSQL 14+ 订单库默认
YAML - 配置文件格式

更多架手架: https://github.com/microwind/design-patterns

1349 次点击
所在节点    推广
6 条回复
crime1024
4 月 7 日
好重度,有轻量的吗
jarryli
4 月 7 日
@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
4 月 7 日
javaer 程序员👨‍💻最爱的设计模式🧐
coconutwater
4 月 7 日
@Livid op 从 3.18 开始频繁在发帖和回复中参杂他个人的 github 项目链接
ASHYWHISPER
4 月 7 日
单人负责一个项目真爽,直接 DTO 进来到 model 完事😁
jarryli
4 月 7 日
@coconutwater 这位兄弟,我只是想在这个变革的时代能帮助到更多的程序员。若有打扰,敬请原谅。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1203964

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX