代码生成平台 PRD
内容严格遵循 PRD 的要求:聚焦“要做什么功能”,不触碰技术实现细节。
Product Requirement Document 版本:1.0 作者:—— 日期:——
目录
- 产品概述
- 产品目标
- 用户与角色
- 典型使用场景
- 产品整体功能架构
- 功能需求 6.1 模板中心 6.2 DSL 编辑器 6.3 代码生成器 6.4 项目脚手架 6.5 文件合并与覆盖策略 6.6 模板调试器 6.7 历史记录与审计 6.8 权限管理
- 非功能需求(NFR)
- 使用流程与交互说明
- API 需求(产品级)
- 指标与衡量标准
- 依赖与边界
- 发布计划(Release Plan)
1. 产品概述(Overview)
代码生成平台是企业级研发效能基础设施,用于:
- 统一工程规范
- 提升研发效率
- 减少重复性开发
- 将组织的最佳实践沉淀为模板
- 支持 DSL → 模板 → 代码生成全链路
平台支持后端、前端、多语言、多框架,可通过 UI 或 API/CLI 使用。 平台包含模板中心、DSL 编辑器、生成器内核、脚手架生成和模板调试等核心能力。
2. 产品目标(Goals)
2.1 总目标
提供一个可扩展、可复用、可沉淀组织知识的工程模板化代码生成平台,提升交付效率和代码一致性。
2.2 关键目标(可度量)
| 指标 | 目标值 |
|---|---|
| 重复代码生成率 | ≥ 50% |
| 组织级模板覆盖率 | ≥ 70% |
| 开发者使用率 | ≥ 80% |
| 项目初始化时间节省 | ≥ 70% |
| 模板创建难度 | 降低至 5–10 分钟可完成简单模板 |
3. 用户与角色(Personas)
| 角色 | 典型诉求 | 需要的能力 |
|---|---|---|
| 后端开发 | 快速生成 CRUD/接口/DTO 等 | 模板使用、DSL 填写、下载生成代码 |
| 前端开发 | 快速生成表单/表格/详情/接口层 | UI 模板、API 模板、组件模板 |
| 架构师 | 定义组织级工程规范与模板 | 模板开发、版本管理、审核 |
| 团队负责人 | 保证质量、一致性、交付速度 | 统计、模板合规度、规范落地 |
| CI/CD 工程师 | 自动生成项目骨架 | API/CLI 接口调用 |
4. 典型使用场景(Use Cases)
UC1:开发者生成 CRUD 模块
- 输入数据库表结构或 DSL
- 选择 CRUD 模板
- 生成 Controller/Service/Mapper/Entity/VO/DTO
UC2:架构师创建组织级模板
- 导入现有项目片段
- 使用占位变量构造模板
- 编写 DSL Schema
- 发布模板供团队使用
UC3:前端生成页面
- 输入字段列表 DSL
- 生成表单、表格、详情页
UC4:CI 自动生成项目脚手架
- 调用 API → 生成项目骨架 → 推送 Git
UC5:开发者调试模板
- 模拟 DSL → 预览输出 → 调试逻辑
5. 产品整体功能架构(Function Architecture)
代码生成平台
├── 模板中心(Template Center)
│ ├── 模板管理
│ ├── 模板版本
│ ├── 模板依赖
│ ├── 模板调试
│ ├── 模板审核(可选)
│
├── DSL 编辑器(DSL Editor)
│ ├── Schema 定义
│ ├── DSL 填写
│ ├── 校验
│ ├── 提示补全
│
├── 代码生成器(Generator)
│ ├── DSL 解析
│ ├── 模板渲染
│ ├── 文件生成策略
│ ├── 插件扩展点
│
├── 项目脚手架(Scaffolding)
│ ├── 工程模板
│ ├── 参数输入
│ ├── Git 输出
│
├── 运行记录与审计
│
└── 权限系统(RBAC)
6. 功能需求(Functional Requirements)
以下为平台“必须提供”的完整功能定义。
6.1 模板中心(Template Center)
FR1 模板列表
用户可查看模板名称、类型、描述、版本信息。
FR2 模板创建
支持三种类型:
- 单文件模板(如单个类)
- 目录模板(包含多个文件)
- 项目模板(完整工程骨架)
FR3 模板版本管理
- 创建版本
- 回滚版本
- 每个版本的 diff 与说明
FR4 模板依赖
模板可以依赖其他模板(如公共模块)。
FR5 模板变量定义
可在模板中定义占位符()。
FR6 模板 Schema 绑定
模板与 DSL 的 Schema 关联。
FR7 模板预览
用户可输入 DSL,预览生成结果。
FR8 模板调试器
- 单文件调试
- 单步渲染(显示 AST / 数据上下文)
- 错误定位(变量缺失、语法错误)
FR9 模板发布
发布模板供其他人使用。
FR10 模板权限
- 可见范围:组织、团队、个人
- 发布权限:架构师 / 管理员
6.2 DSL 编辑器(DSL Editor)
FR11 DSL Schema 定义
支持字段类型、校验规则、枚举、描述。
FR12 DSL 编辑器(带提示)
- 字段补全
- 语法高亮
- 校验提示
- 默认值预填
FR13 DSL 示例
每个模板可配置示例 DSL。
FR14 DSL 校验框架
基于 JSON Schema 或自定义 Schema。
6.3 代码生成器(Generator Engine)
FR15 模板渲染
支持常见模板语法(如 Handlebars/Liquid、Velocity 等)。
FR16 文件生成策略
- 覆盖
- 跳过
- 合并(智能行合并)
- 追加
FR17 多语言支持
支持生成 Java、JS、TS、Go、HTML、XML、YAML 等。
FR18 插件扩展点
- Helper(函数)
- Filter(转换)
- Hook(before/after)
FR19 输入输出
- 输入:DSL
- 输出:文件包(zip)或 Git 仓库
6.4 项目脚手架(Project Scaffolding)
FR20 工程初始化
生成标准化项目结构。
FR21 全局参数输入
如 groupId、artifactId、项目描述、端口号。
FR22 输出到 Git
支持 push 到 Git 仓库(可选)。
6.5 文件合并与覆盖策略
FR23 冲突检测
检测文件已存在时的冲突。
FR24 手动选择策略
覆盖 / 跳过 / 合并。
FR25 差异预览
显示 diff。
6.6 历史记录与审计
FR26 生成记录
记录时间、模板、输入 DSL、输出大小。
FR27 回溯
支持回溯到某个生成版本。
6.7 权限管理(RBAC)
FR28 模板权限
模板可设置“公开/团队/组织/仅自己”。
FR29 操作权限
模板发布/删除/审核需要更高权限。
7. 非功能需求(NFR)
| NFR 类别 | 需求 |
|---|---|
| 性能 | 单次生成耗时 ≤ 3 秒(中型模板) |
| 可用性 | 可用性 ≥ 99.9% |
| 可扩展性 | 支持插件、扩展模板引擎 |
| 安全性 | 模板渲染必须 Sandbox 隔离 |
| 可维护性 | 模板版本可追溯、可回滚 |
| 国际化 | 支持中英文切换 |
8. 使用流程与交互说明
8.1 模板使用生成代码流程
用户 → 选择模板 → 填写 DSL → 预览 → 调整 → 导出 → 合并至本地工程
8.2 模板创建流程
架构师 → 新建模板 → 编辑文件与目录 → 编写 DSL Schema → 调试 → 发布
8.3 项目脚手架流程
选择项目模板 → 填写参数 → 生成项目骨架 → 下载或推送 Git
9. API(仅产品级说明)
提供:
- 模板查询接口
- 模板渲染接口
- DSL 校验接口
- 项目生成接口
- 模板上传/发布接口
用于 CI/CD、自动化工具或脚本系统调用。
10. 指标与衡量标准
| 指标 | 衡量方式 |
|---|---|
| 模板复用率 | 模板使用次数 / 模板数量 |
| 生成覆盖率 | 自动生成代码占比 |
| 用户活跃度 | DAU / MAU |
| 生成成功率 | 成功生成次数 / 总生成次数 |
11. 依赖与边界
依赖
- Git 平台
- 内部认证系统(IAM)
- 文件存储服务
边界
- 不包含业务逻辑生成
- 不负责构建/部署
- 不替代框架本身功能
- 不强制管理团队编码方式(模板可选)
12. 发布计划(Release Plan)
| Milestone | 内容 |
|---|---|
| M1 | 模板中心(CRUD、版本、预览) |
| M2 | DSL Schema + 编辑器 |
| M3 | 生成器内核(模板渲染、文件生成) |
| M4 | 模板调试器 |
| M5 | 项目脚手架 |
| M6 | 权限、审计 |
| M7 | 插件体系扩展 |
- 代码生成平台 PRD
- 目录
- 1. 产品概述(Overview)
- 2. 产品目标(Goals)
- 3. 用户与角色(Personas)
- 4. 典型使用场景(Use Cases)
- 5. 产品整体功能架构(Function Architecture)
- 6. 功能需求(Functional Requirements)
- 7. 非功能需求(NFR)
- 8. 使用流程与交互说明
- 9. API(仅产品级说明)
- 10. 指标与衡量标准
- 11. 依赖与边界
- 12. 发布计划(Release Plan)
