从单项目工作台
到全栈系统描述平台
我们已经能支持单个项目的原型-后台-建模-文档生成。但大型项目是云-数据中台-微服务-子系统这样的复杂架构,本设计将工作台扩展为双形态项目的统一管理平台,覆盖从基础设施到业务系统的全栈。
设计哲学
"工作台不只是界面原型工具,
它是系统全栈的描述工具。"
原有工作台假设"项目 = 有界面的可交互系统",因此所有功能(页面原型、跳转图、后台生成)都建立在有页面这一前提上。但在企业级集群中,云基础设施、微服务、数据中台这些底层系统可能没有 UI,只有服务能力。
三个核心立场
有界面项目(page-based)继续走原有工作台;无界面项目(service-only)走新的"服务详情页"。两种形态在集群视角下统一管理。
跨层关系不是"模块直连",而是下层暴露能力、上层消费能力。能力是稳定契约,模块是变化实现。
基础项目面向极简用户(5 分钟生成原型);项目集群面向架构师用户(系统治理、影响分析)。功能分层,复杂度可选。
概览
核心洞察:项目形态二分
在企业级集群中,项目分为两种本质不同的形态:
- 有 HTML 页面原型
- 有 C端/管理后台 等端
- 有跳转图、流程图、时序图
- 可生成 amis 后台
- 文档含截图
→ 现有项目(旅行票根、邻里换物)
- 无页面,只有服务能力
- 有 capabilities(能力契约)
- 有 apiContract(OpenAPI)
- 有 runtime(运行时配置)
- 可被其他项目消费
→ 新增形态(用户中心、MySQL、K8s)
典型集群示例
核心概念
| 概念 | 定义 | 示例 |
|---|---|---|
| 项目集群 (Cluster) | 一组共享技术底座和数据的关联项目集合 | "企业级业务平台" |
| 架构层 (Layer) | 集群内的逻辑分层,代表不同的技术/职责层级 | 云基础设施 / 数据中台 / 微应用层 / 应用系统层 |
| 能力 (Capability) | 下层项目对外暴露的服务/功能单元 | "用户认证能力"、"支付能力" |
| 能力依赖 (Dependency) | 上层项目消费下层能力的关联关系 | 订单系统 → 用户认证能力 |
| 共享实体 (Shared Entity) | 集群级别共享的数据模型 | User, Order, Product |
| 能力版本 (Capability Version) | 能力的某个发布版本,支持多版本共存 | 用户认证 v1.0, v2.0-beta |
| 集群模板 (ClusterTemplate) | 预定义的架构层结构模板 | "微服务标准架构", "数据中台架构" |
| 自动依赖检测 (Auto Dependency) | 从数据模型引用自动推断跨层依赖 | 检测到 Order → User → 用户认证 |
目标用户分层
基于复核意见,本方案明确采用 双重定位、分阶段推进 的产品策略:
小班/工作室/产品经理/独立开发者
对应功能:基础项目(已有)
企业架构师/技术负责人/系统规划者
对应功能:项目集群(本次扩展)
能力版本管理、自动依赖检测、集群模板等功能列为可选,通过开关控制。核心功能(集群 CRUD、分层架构、跨层关系可视化)优先实现,不强制所有用户面对企业级复杂度。
数据模型
集群核心结构
Project 扩展(双形态)
实体关系图
用户交互
工作台导航
集群管理页面是工作台的新顶层入口,与现有"项目库"并列:
集群工作台(核心形态)
分层摘要
创建流程
服务详情页(无界面项目新形态)
无界面项目不再套用现有项目工作台,而是新形态:
服务描述
提供统一用户认证、用户画像、权限校验
技术栈
Spring Boot 3.x + PostgreSQL
健康度
🟢 Healthy · Uptime 99.9% · 平均延迟 50ms
能力列表
运行时
可视化设计
集群视角的图表体系
现有图表(architecture/flowchart/sequence/swimlane)都假设"有页面"。集群视角需要新的图表体系:
| 图表类型 | 有界面项目 | 无界面项目 | 适用场景 |
|---|---|---|---|
| 分层架构图 | ✅ | ✅ | 集群全局概览 |
| 能力依赖矩阵 | ✅ | ✅ | 跨层依赖分析 |
| 服务依赖图 | △ | ✅ | 微服务调用关系 |
| 部署拓扑图 | △ | ✅ | K8s 部署视图 |
| 数据流图 | ✅ | ✅ | 共享实体流向 |
| 现有 architecture 图 | ✅ | ❌ | 单项目内页面关系 |
| 现有 flowchart 图 | ✅ | ❌ | 单项目流程 |
分层架构图(适配双形态)
能力版本管理
支持多版本共存,每个能力有版本时间线:
技术方案
存储方案(明确本地局限)
本方案明确限于本地原型阶段(基于 DSH 插件模型),不预设商业化多租户场景。商业化路径确定后,存储方案需整体重构。
集群数据与现有项目数据统一存储在 proto-projects.json 中:
适用范围:✅ 本地原型阶段、个人/小团队、单设备
不适用:❌ 多租户 SaaS、团队协作、版本控制、权限隔离
可视化技术
| 视图 | 技术方案 | 说明 | v1.2 状态 |
|---|---|---|---|
| 分层架构图 | 自定义 SVG/Canvas | 类似 swimlane,适配双形态 | 已适配 |
| 服务依赖图 | ECharts Graph | 服务调用关系 | 新增 |
| 部署拓扑图 | 自定义 SVG | K8s 风格 | 新增 |
| 数据流图 | ECharts Sankey | 共享实体流向 | 新增 |
| Sankey 图 | ECharts Sankey | 能力依赖 | 保留 |
| 矩阵图 | 自定义表格 | 依赖矩阵 | 保留 |
RPC 接口清单
分阶段实施总览
真实周期估算:4.5 - 5.5 个月(17-22 周),分 5 个阶段。每个阶段有独立的目标、任务和完成标准:
v1.0 排期 10-15 周 → v1.2 排期 15-20 周(4-5 个月)→ v1.2.1 排期 17-22 周(4.5-5.5 个月)。每次调整都更贴近真实工作量,避免过度承诺。
01 基础骨架
▼核心目标
用户能创建集群、把现有项目加入集群指定层、能创建不同形态的项目(page-based / service-only)、能看到分层架构图。能力编辑、依赖建模、共享实体等更高级功能留给 Phase 2-4。
工作台侧边栏新增"集群列表",与"项目库"并列。用户能在两个库之间切换。
完整的集群生命周期:创建(含层定义)、编辑、删除、查询。
page-based 项目进入现有工作台,service-only 项目进入新的服务详情页。
静态展示集群的层结构和项目分布,跨层依赖线先预留(Phase 2 动态)。
无界面项目的新形态:服务描述、技术栈、API 契约、运行时配置。
1 个测试集群(4 层、6 项目),包含 2 个真实项目和 4 个 mock 服务项目。
明确边界:本阶段不做
为了避免 Phase 1 失控,以下功能明确推迟到后续阶段:
| 不做的事 | 原因 | 推迟到 |
|---|---|---|
| 能力编辑 UI | 依赖 apiContract 派生能力的设计验证 | Phase 2 |
| 依赖建模 | 需要先有"能力"概念作为依赖目标 | Phase 2 |
| 共享实体定义 | 需要先有项目归属基础 | Phase 3 |
| 能力版本管理 | v1.2 列为可选功能 | Phase 3(可选) |
| 集群模板 | 需要在有真实使用数据后设计 | Phase 4 |
| 自动依赖检测 | 现有 ref: 仅 3 处,数据基础不足 | Phase 5+ |
| 跨层依赖线(动态) | 需要先有依赖数据 | Phase 2 |
| 服务依赖图、部署拓扑图 | 需要先稳定服务详情页形态 | Phase 2 |
排期总览
22 个任务分 4 周完成,每周五天工作日,外加 2 天缓冲用于联调与意外处理。
基础设施
数据模型 · 集群 CRUD · 侧边栏重构
集群工作台
多 Tab 框架 · 分层架构图 · 服务详情页
服务形态 + 测试
运行时配置 · 新建对话框 · 测试数据
联调 & 打磨
端到端测试 · UI 打磨 · 文档
线框图(8 张)
1️⃣ 新建项目对话框(类型选择)
用户点击"新建项目"后的第一个对话框,选择项目类型(单一项目 / 项目集群)。
选择项目类型。集群适合管理多个关联项目的复杂架构。
2️⃣ 集群创建向导(层结构)
用户选择"项目集群"后进入的向导,定义层数和每层名称。
3️⃣ 集群列表页
工作台侧边栏切换到"集群列表"后的页面,显示所有集群卡片。
4️⃣ 集群工作台(总览 Tab)
点击集群卡片进入的工作台,显示统计和分层摘要。
5️⃣ 分层架构图(静态)
集群工作台的"分层架构" Tab,按层展示项目分布(双形态)。
6️⃣ 服务详情页(service-only 项目)
无界面项目的新工作台形态。
7️⃣ 服务运行时配置(编辑)
8️⃣ 项目迁移到集群的确认弹窗
项目加入集群后将发生变化,请确认:
- 项目将在工作台"项目库"中显示为"🔗 已加入集群"
- 项目仍可独立编辑,原工作台功能不受影响
- 集群工作台"总览/分层架构"中可看到该项目
- 可随时"从集群移除"恢复为独立项目
任务清单(22 项)
📅 Week 1 · 基础设施(Day 1-5)
| # | 任务 | Day | 工作 | 依赖 |
|---|---|---|---|---|
| 1.1 | schema 扩展(type 字段) | D1 上 | 0.5 天 | 无 |
| 1.2 | Project 字段扩展 | D1 下 | 0.5 天 | 1.1 |
| 2.1 | proto_cluster_create | D2 上 | 0.5 天 | 1.2 |
| 2.2 | cluster CRUD RPCs | D2 下-D3 上 | 1 天 | 2.1 |
| 3.1 | proto_project_set_type | D3 下 | 0.5 天 | 1.2 |
| 3.2 | project_set/remove_cluster | D3 下 | 1 天 | 2.1 |
| 4.1 | 侧边栏集群入口 | D4 上 | 0.5 天 | 2.2 |
| 4.2 | 集群列表页 UI | D4 下 | 1 天 | 2.2 |
| 4.3 | 集群卡片缩略图 | D5 上 | 0.5 天 | 4.2 |
| 4.4 | 返回导航 | D5 下 | 0.5 天 | 4.1 |
📅 Week 2 · 集群工作台(Day 6-10)
| # | 任务 | Day | 工作 | 依赖 |
|---|---|---|---|---|
| 5.1 | 集群工作台多 Tab 框架 | D6 | 1 天 | 4.2 |
| 5.2 | 总览 Tab(统计+分层摘要) | D7 | 1 天 | 5.1 |
| 6.1 | 分层架构图基础渲染 | D8 | 1 天 | 5.2 |
| 6.2 | 项目卡片双形态样式 | D9 上 | 0.5 天 | 6.1 |
| 6.3 | 跨层依赖线(静态) | D9 下 | 0.5 天 | 6.1 |
| 7.1 | 服务详情页主框架 | D10 上 | 0.5 天 | 5.1 |
| 7.2 | 总览 Tab | D10 中 | 0.5 天 | 7.1 |
| 7.3 | API 契约 Tab | D10 下 | 0.5 天 | 7.1 |
📅 Week 3 · 服务形态 + 测试数据(Day 11-15)
| # | 任务 | Day | 工作 | 依赖 |
|---|---|---|---|---|
| 8.1 | proto_service_update_runtime | D11 上 | 0.5 天 | 1.2 |
| 8.2 | proto_service_update_api_contract | D11 下 | 0.5 天 | 1.2 |
| 8.3 | 服务运行时 Tab UI | D12 | 1 天 | 8.1 |
| 9.1 | 新建项目对话框:类型选择 | D13 上 | 0.5 天 | 2.1 |
| 9.2 | "单一项目"流程 | D13 中 | 0.5 天 | 9.1 |
| 9.3 | "项目集群"流程 | D14 | 1 天 | 9.1 |
| 10.1 | 创建测试集群 | D15 上 | 0.5 天 | 全部 |
| 10.2 | 添加旅行票根到 L4 | D15 中 | 0.5 天 | 10.1 |
| 10.3 | 创建 service-only mock 项目 | D15 下 | 0.5 天 | 10.2 |
📅 Week 4 · 联调 & 打磨(Day 16-20)
| # | 任务 | Day | 工作 | 依赖 |
|---|---|---|---|---|
| 11.1 | 端到端测试 | D16 | 1 天 | 10.3 |
| 11.2 | 修复问题 | D17 | 1 天 | 11.1 |
| 12.1 | 视觉一致性 | D18 上 | 0.5 天 | 11.2 |
| 12.2 | 交互动画 | D18 下 | 0.5 天 | 11.2 |
| 12.3 | 响应式适配 | D19 | 1 天 | 11.2 |
| 13.1 | 用户文档 | D20 上 | 0.5 天 | 12.3 |
| 13.2 | 内部演示 | D20 下 | 0.5 天 | 13.1 |
完成标准(Definition of Done)
| # | 验收项 | 验证方式 |
|---|---|---|
| 1 | 工作台侧边栏有两个 Tab:📁 项目库、🏢 集群列表 | UI 检查 |
| 2 | 能创建集群并定义层结构 | 创建测试集群 |
| 3 | 能把现有项目加入集群指定层 | 旅行票根→L4 |
| 4 | 能创建新项目时选择加入集群 | 新建项目→加入 L3 |
| 5 | page-based 项目进入现有工作台 | 点击旅行票根 |
| 6 | service-only 项目进入服务详情页 | 点击用户中心服务 |
| 7 | 集群工作台多 Tab 框架正常 | UI 检查 |
| 8 | 分层架构图渲染正确(4 层 + 项目卡片) | UI 检查 |
| 9 | 项目卡片区分 page-based(🖥️ 蓝)vs service-only(⚙️ 橙) | UI 检查 |
| 10 | 服务详情页 API 契约 Tab 能显示现有 endpoints | 旅行票根 20 个 |
| 11 | 至少 1 个测试集群数据可演示 | __test_ 测试集群 |
| 12 | 用户文档完成 | docs/cluster-user-guide.md |
| 13 | 无 P0/P1 Bug 残留 | 端到端测试 |
| 14 | 所有 RPC 测试通过 | 单元测试 |
分阶段实施总览
本方案分 5 个阶段实施,真实周期估算 4.5 - 5.5 个月(17-22 周)。每个阶段有独立的方案文档,点击下方链接查看详情:
工作台侧边栏集群入口 · 集群 CRUD · 双形态项目 · 服务详情页 · 分层架构图(静态)
能力注册表 · 依赖编辑器 · 服务依赖图 · 部署拓扑图 · 数据流图 · Sankey 矩阵
共享实体定义 · 影响分析 · 能力版本管理
数据迁移 · 自动检测 · 模板系统
性能优化 · 交互动画 · 导入导出
v1.0 排期 10-15 周 → v1.2 排期 15-20 周(4-5 个月)→ v1.5 排期 17-22 周(4.5-5.5 个月)。每次调整都更贴近真实工作量,避免过度承诺。
关键设计决策
能力是契约,模块是实现。能力更稳定,模块可能变化。一个能力被多个上层消费,模块直连会导致 N×N 复杂度。
数据一致性,避免重复定义。修改共享实体时快速定位影响范围。共享实体对应共享数据库表。
基础项目面向极简用户(5 分钟生成原型);项目集群面向架构师用户(系统治理)。功能分层,复杂度可选。
老消费者不受影响,新消费者用新版本。已发布版本 schema 不可变。渐进迁移引导消费者升级。
降低维护成本。数据驱动,最可靠的依赖信号。即时反馈,修改数据模型后立即看到依赖建议。
快速启动,最佳实践。团队统一风格。知识沉淀,自定义模板将团队经验固化为可复用资产。
风险 & 缓解
| 风险 | 概率 | 影响 | 缓解措施 |
|---|---|---|---|
| 自动检测"无米下锅"(数据未结构化) | 高 | 高 | Phase 4 先做数据就绪迁移工具 |
| 后台生成过度承诺 | 中 | 高 | v1.2 已移除,列为远期探索 |
| 存储不可扩展至多租户 | 高 | 高 | 明确限于本地阶段,商业化前重构 |
| 与独立化路径冲突 | 高 | 高 | 暂限于本地,独立化拍板后调整 |
| 能力契约的"模块"假设未被验证 | 中 | 中 | Phase 1 抽样验证现有项目数据模型 |
| 版本管理过度设计 | 中 | 中 | 改为可选功能(开关控制) |
| 跨层关系维护成本高 | 高 | 中 | 自动检测 + 手动维护 + 默认建议 |
| 可视化性能问题 | 中 | 中 | 虚拟滚动 + 懒加载 + 分层聚合 |
| 排期失控(Phase 过密) | 中 | 中 | v1.2 重新估算为 4.5-5.5 个月 |
开放问题
已解决(v1.2.1)
- ✅ 能力版本管理(v1.2 改为可选功能)
- ✅ 自动依赖检测(v1.2 明确前置条件)
- ✅ 集群模板(v1.2 按需实现)
- ✅ 目标用户定位(双重定位)
- ✅ 存储范围(明确为本地原型阶段)
- ✅ 后台生成承诺(从方案中移除)
- ✅ 项目形态双形态(v1.2.1 核心新增)
待解决
- 能力契约的"模块"假设 — 需在 Phase 1 抽样验证数据模型
- 数据模型结构化迁移 — 现有实体多为空数组
- 能力版本管理的开关粒度 — 全局 vs 按能力
- DSH-RPC 耦合风险 — 独立化路径若选解耦需重写 §5.1/§5.3
可行性复核附录
本附录为独立复核意见。v1.2 已针对关键质疑做出回应: §1.5 目标用户分层、 §3.0 服务详情页、 §5.1 存储本地局限、 §5.4 移除后台生成、 §6 排期 4.5-5.5 个月、 §8 风险矩阵 9 项。 原文保留作为复核记录。
一句话结论
本方案是 proto-workspace 的产品功能扩展,概念自洽、体验设计成熟,但其全部能力通过新增 DSH RPC 实现、数据落在既有的 proto-projects.json,完全绑定在当前 DSH 插件模型上。它能否按原样落地,取决于上一轮《ProtoWork 独立化方案》最终选定的"独立化路径"。
已核实事实
- ✅ proto-projects.json 与既有 RPC 确实存在
- ⚠️ 自动依赖检测的前提不成立:现有项目 dataModel.entities 多为空数组,不存在 sharedEntityRefs 与集群级 sharedEntities
- ⚠️ "能力契约"假设了理想化的"模块":proto-workspace 的真实"模块"是页面/图工件,并非强类型服务模块
建议的落地姿态
- 先决条件:启动本方案前,先锁定独立化路径
- 首轮范围收敛:先做高价值低风险的集群 + 分层 + 能力注册表 + 分层架构图
- 验证数据就绪:押注自动检测前,先抽样验证数据模型
- 存储升级前置:商业化要 SaaS 多租户,持久化应早期规划