# Canvas 白板驱动开发工作流指南 ## 核心理念 ``` 传统开发:代码 → 口头沟通 → 脑补架构 → 代码失控 Canvas方式:代码 ⇄ 白板 ⇄ AI ⇄ 人类(白板为单一真相源) ``` **图形是第一公民,代码是白板的序列化形式。** ## 工具准备 1. **Obsidian** - 免费开源白板工具 - 下载: https://obsidian.md/download - 启用 Canvas 功能(默认已启用) 2. **AI 助手** - Claude/GPT-4 - 需支持读取 Canvas JSON 格式 - 推荐使用 Claude Code 或 Codex CLI ## 完整工作流 ### Phase 1: 生成架构白板 **场景**: 接手新项目,快速理解架构 ``` 1. 提供项目代码路径给 AI 2. 使用架构分析提示词 3. AI 生成 .canvas 文件 4. 用 Obsidian 打开查看 ``` **提示词模板**: ``` 分析 {PROJECT_PATH} 项目,生成 Obsidian Canvas 架构白板。 粒度: {file/class/service} 重点关注: API路由、数据库模型、外部服务调用 ``` ### Phase 2: 人工优化白板 **场景**: 调整自动生成的白板 ``` 1. 拖动节点调整布局 2. 补充遗漏的依赖连线 3. 添加注释节点标注设计决策 4. 删除错误的连接 ``` **布局原则**: - 按功能分层(前端 → API → 服务 → 数据) - 同层节点垂直对齐 - 保持连线不交叉 ### Phase 3: 白板驱动编码 **场景**: 新功能开发 ``` 1. 在白板上画出新模块框 2. 添加预期的调用连线 3. 导出白板 JSON 发给 AI 4. AI 根据白板生成代码 ``` **提示词模板**: ``` 根据以下 Canvas 白板生成代码: {CANVAS_JSON} 技术栈: {TECH_STACK} 目标目录: {TARGET_DIR} ``` ### Phase 4: 白板驱动重构 **场景**: 架构调整 ``` 1. 在白板上删除/重连依赖线 2. 标注需要拆分的大模块 3. 发送修改后的白板给 AI 4. AI 生成重构代码 ``` **提示词模板**: ``` 白板已更新,请对比新旧版本重构代码: 旧白板: {OLD_CANVAS} 新白板: {NEW_CANVAS} 只输出需要修改的文件 ``` ### Phase 5: 一致性检查 **场景**: PR/MR 合并前 ``` 1. 运行一致性检查脚本 2. 对比白板节点与实际文件 3. 修复不一致之处 4. 优先修正白板(白板是事实来源) ``` ## 场景速查 | 场景 | 操作 | 提示词关键词 | |:---|:---|:---| | 接手新项目 | 生成白板 | "分析项目,生成架构白板" | | 新功能开发 | 画白板 → 生成代码 | "按这个白板实现代码" | | 架构重构 | 改白板 → 重构代码 | "按新白板重构" | | Code Review | 看白板全局 | "检查这条调用链" | | 团队协作 | 共享白板 | "指着白板讲" | ## 最佳实践 ### DO ✅ - 每次代码变更后更新白板 - 用颜色区分不同类型的模块 - 为复杂依赖添加 label 说明 - 定期运行一致性检查 ### DON'T ❌ - 不要让白板与代码长期不同步 - 不要在白板中包含敏感信息 - 不要创建过于复杂的白板(拆分为多个) - 不要忽略循环依赖警告 ## 与其他工具集成 ### CI/CD 集成 ```yaml # .github/workflows/canvas-check.yml name: Canvas Sync Check on: pull_request: paths: ['**.py', '**.canvas'] jobs: check: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - run: python scripts/canvas_sync_check.py ``` ### VS Code 集成 1. 安装 Obsidian 插件 2. 配置 `.canvas` 文件关联 3. 使用 Claude Code 读取白板 ## 相关资源 - [Canvas白板驱动开发详解](../../../documents/02-方法论/图形化AI协作-Canvas白板驱动开发.md) - [架构分析提示词](../../../workflow/canvas-dev/prompts/01-架构分析.md) - [白板驱动编码提示词](../../../workflow/canvas-dev/prompts/02-白板驱动编码.md) - [白板同步检查提示词](../../../workflow/canvas-dev/prompts/03-白板同步检查.md)