简介
GoDDD 是一款 AI 驱动的轻量化企业级项目脚手架,专注于通过自然语言描述业务需求即可生成领域代码,把重复样板交给 AI,开发者只需专注业务逻辑。
目录导引
Git 工作流
Git 提交与分支管理规范,让协作历史清晰可追溯。
设计哲学
Go 语言官方谚语、设计哲学与工程实践格言合集。
Websocket
WebSocket 框架:连接管理、消息路由与处理机制。
API 设计
资源命名、标准方法、错误处理、分页与校验规范。
为什么选择 GoDDD
脚手架,不是框架
这两者常被混为一谈,但定位截然不同。
框架是从底层实现的闭环。 它接管程序的生命周期:路由怎么注册、请求怎么处理、对象怎么创建,都由框架说了算。你的代码是"被调用者",生活在框架搭好的世界里。这带来强大,也带来绑定——想换掉某个部件,往往意味着和整个框架搏斗。
脚手架是一套最佳工程实践的组合。 GoDDD 不接管你的运行时,它把"每个项目都要重搭一遍"的东西——分层结构、错误处理、参数校验、分页过滤、限流、代码生成——沉淀为约定和工具,一次替你搭好。你的代码始终是主角:依赖自己注入,库自己选。想在服务里接入 gRPC?直接接,脚手架不会拦你;想换日志库、换存储驱动?改一处的事。
一句话:框架告诉你"必须怎么做",脚手架告诉你"建议怎么做",然后替你做完。
工程实践,开箱即用
GoDDD 有主见(opinionated)但不封闭,默认配置即是生产可用的最佳实践:
- 快速启动:
goddd init一键生成项目骨架,goddd gen从结构体生成完整 CRUD 代码,省去大量样板。 - 防御性编写:把校验、错误、限流前置到边界——参数绑定失败自动返回 400 并定位到字段;错误统一用字符串 reason 标识,调用方可精确分支;排序字段走白名单防注入;删除接口幂等,重试、双击、网络重发都不出错。
- 结构清晰:API / Core / Store 三层分离,每个业务领域独立,代码边界明确。
- 容易测试:Core 通过接口依赖 Store,无需连接数据库也能做 mock 单元测试。
- 低学习成本:不需要精通 DDD,只需按约定写 Core 和 API,就能搭出规范的后端服务。
- 可演进:从模块化单体出发,业务增长后可以按领域平滑拆分为微服务。
如果你需要的是一个内置可视化配置、多协议网关、企业级 BPM 的大而全平台,GoDDD 不合适。它更适合中小型后端服务、希望统一工程规范的团队,以及想用 AI 生成减少重复开发的场景。
快速开始
推荐通过 goddd 命令行工具创建项目:
# 安装命令行工具
go install github.com/ixugo/goddd/cmd/goddd@latest
# 创建新项目
goddd init myapp -g github.com/yourname/myapp
# 进入项目并运行
cd myapp && go run main.go
生成 DDD 分层代码:
# 从结构体定义生成 Core/Store/Cache/API 代码
goddd gen -f tables/user/user.go
# 多个文件用逗号分隔
goddd gen -f tables/user/user.go,tables/task/task.go
更多命令与详细用法请参考 goddd README。
设计目标
- 提供适用于各种规模项目的整洁架构。
- 通过模块化结构快速启动项目,聚焦业务开发。
- 让项目更简单,让研发心情更好。
- 降低学习曲线,无需精通 DDD 也能快速上手。