代码生成平台 PRD

内容严格遵循 PRD 的要求:聚焦“要做什么功能”,不触碰技术实现细节。

Product Requirement Document 版本:1.0 作者:—— 日期:——


目录

  1. 产品概述
  2. 产品目标
  3. 用户与角色
  4. 典型使用场景
  5. 产品整体功能架构
  6. 功能需求  6.1 模板中心  6.2 DSL 编辑器  6.3 代码生成器  6.4 项目脚手架  6.5 文件合并与覆盖策略  6.6 模板调试器  6.7 历史记录与审计  6.8 权限管理
  7. 非功能需求(NFR)
  8. 使用流程与交互说明
  9. API 需求(产品级)
  10. 指标与衡量标准
  11. 依赖与边界
  12. 发布计划(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 模板创建

支持三种类型:

  1. 单文件模板(如单个类)
  2. 目录模板(包含多个文件)
  3. 项目模板(完整工程骨架)

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 插件体系扩展