一个开箱即用的 DDD (领域驱动设计) Go 脚手架,基于 Gin + RocketMQ ,包含双数据库、统一响应、中间件与事件驱动示例。
Gin-Framework-DDD 是一个面向 Go 语言的 DDD 工程脚手架,帮你快速搭建符合 DDD 分层规范的 Web 服务。项目内置用户与订单示例、领域事件与 RocketMQ 生产/消费、邮件通知示例、统一响应与中间件,适合作为团队工程模板。
功能与 practice-projects/gin-mvc对齐,可以对比下DDD与MVC工程目录结构的差异。
很多人认为 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 | - | 配置文件格式 |
1
crime1024 17 小时 44 分钟前
好重度,有轻量的吗
|
2
jarryli OP @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 |
3
beidounanxizi 15 小时 24 分钟前 via Android
javaer 程序员👨💻最爱的设计模式🧐
|
4
coconutwater 12 小时 57 分钟前 @Livid op 从 3.18 开始频繁在发帖和回复中参杂他个人的 github 项目链接
|
5
ASHYWHISPER 12 小时 49 分钟前
单人负责一个项目真爽,直接 DTO 进来到 model 完事😁
|
6
jarryli OP @coconutwater 这位兄弟,我只是想在这个变革的时代能帮助到更多的程序员。若有打扰,敬请原谅。
|