跳到主要内容

简介

GoDDD 是一款 AI 驱动的轻量化企业级项目脚手架,专注于通过自然语言描述业务需求即可生成领域代码,把重复样板交给 AI,开发者只需专注业务逻辑。

目录导引

为什么选择 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 也能快速上手。