CodeGeeX 可通过四种路径实现 Go 语言 DDD+Gin 项目生成:一、自定义 Prompt 精准生成各层代码;二、脚本自动补全工程骨架;三、接入现有脚手架模板引擎;四、对存量项目做 DDD 识别与重构建议。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

如果您希望借助 CodeGeeX 快速生成符合 Go 语言风格的领域驱动设计(DDD)项目结构,但发现其默认模板未覆盖 DDD 分层规范或 Gin 框架集成,则可能是由于模型训练语料中缺乏足够多的 Go+DDD+Gin 脚手架样本。以下是实现该目标的多种可行路径:
一、使用 CodeGeeX 配合自定义 Prompt 精准生成 DDD 模块代码
该方法依赖于对 CodeGeeX 的指令工程能力,通过结构化提示词引导模型输出符合 DDD 四层(接口层、应用层、领域层、基础设施层)边界的 Go 代码片段,避免跨层引用和逻辑污染。
1、在 CodeGeeX 插件或 Web 界面中输入如下 Prompt:“请生成一个 Go 语言 Gin 框架下的订单聚合根(Order Aggregate Root),包含 ID、UserID、Amount 字段,以及创建订单的业务规则:金额必须大于 0,且用户 ID 不为空。仅输出 domain/model/order/order.go 文件内容,不包含任何 import 包声明以外的其他文件。”
2、将生成的代码粘贴至项目对应目录 internal/domain/model/order/order.go 中。
3、再次调用 CodeGeeX,输入 Prompt:“基于上一个订单聚合根,生成对应的仓储接口(Repository Interface),命名为 OrderRepository,定义 Save 和 FindByID 方法,返回 error。仅输出 domain/repository/order/order_repository.go 内容。”
4、重复上述步骤,依次生成 event、application/dto、application/service 等层级文件,确保每条 Prompt 明确限定层级、文件路径与职责边界。
二、基于 CodeGeeX 输出结果,用脚本自动补全 DDD 工程骨架
该方法将 CodeGeeX 视为代码片段生成器,再通过本地 Python 或 Bash 脚本将其输出组织为标准 DDD 目录结构,并注入必需的依赖注入、配置加载与路由绑定逻辑,弥补大模型在工程一致性上的不足。
1、使用 CodeGeeX 批量生成多个核心领域实体(如 user.go、order.go)及对应仓储接口(user_repository.go、order_repository.go),保存为临时文本文件。
2、运行本地 Python 脚本,读取这些文件,自动创建以下目录:internal/domain/model/user/、internal/domain/repository/user/、internal/application/dto/user/。
3、脚本自动向 cmd/server/main.go 中追加 Gin 路由注册代码,例如:v1.POST("/users", userHandler.Create)。
4、脚本检查所有生成文件是否缺失 go:generate 注释或 //go:build 标签,若缺失则按项目规范插入。
CodeGeeX 2.21.0是智谱AI推出的AI编程助手版本,对Inline Chat功能进行了重大优化,包括UI设计升级、支持流式输出以提升响应速度,并新增“查看思路”按钮以便理解代码原理。同时,该版本在编辑器中新增CodeLens控件,支持一键“解释”代码或“添加注释”。目前该工具对个人开发者免费开放。
三、将 CodeGeeX 接入已有 GoDDD 脚手架的模板引擎流程
该方法不直接依赖 CodeGeeX 生成完整工程,而是将其嵌入到已验证的 GoDDD 脚手架(如 gin-ddd)的 freemarker 或 text/template 渲染链路中,作为动态字段填充组件,保障架构合规性前提下的内容灵活性。
1、在 gin-ddd 脚手架的 config/config.yaml 中新增字段:ai_enabled: true 与 ai_prompt_template: "生成{{.EntityName}}的领域事件,含Created、Updated类型"。
2、修改脚手架主程序,在解析完表结构后,调用本地部署的 CodeGeeX API(如通过 HTTP POST 到 http://localhost:8080/v1/completions),传入拼接后的 Prompt。
3、接收响应后,提取 code 字段内容,写入 internal/domain/event/{{.EntityName}}_event.go。
4、确保脚手架在生成过程中校验生成文件是否包含 package event 且无跨层 import(如不能出现 internal/application/ 路径)。
四、利用 CodeGeeX 对存量 Go 项目进行 DDD 架构识别与重构建议
该方法适用于已有非 DDD 结构的 Go 项目,通过 CodeGeeX 分析代码语义,识别出潜在聚合根、值对象与领域服务,并输出重构路径,辅助人工完成向 DDD 的渐进式迁移。
1、将待分析项目的 handler/ 和 service/ 目录下全部 .go 文件内容拼接为长文本,提交给 CodeGeeX。
2、输入 Prompt:“请分析以下 Go 代码,识别出所有具备聚合根特征的结构体(具有唯一标识、强一致性约束、生命周期管理),列出其名称、所在文件路径、关键业务不变量。”
3、根据返回结果,在 internal/domain/model/ 下新建对应聚合根文件,并将原 service 中的校验逻辑迁移至其方法内。
4、对每个被识别出的聚合根,要求 CodeGeeX 生成配套的仓储实现 stub(含 MySQL 查询构造逻辑),并标注需人工补充事务控制的位置。


















