Excalidraw 协作草图、仓库接入与数据治理手册
Excalidraw 的手绘表达适合方案探索、评审沟通和快速拆解。它不应被误用为所有正式架构资产的终点。一个 .excalidraw 文件包含画布元素、样式与可能的内嵌文件;在线协作和分享链接还保存仓库之外的会话状态。团队需要区分草图阶段、收敛阶段和长期归档阶段。
先定义草图何时算完成
安装或启用 Excalidraw 可以使用官方网页应用,也可以在产品中集成官方包。浏览器 PWA、第三方编辑器扩展和自建组件具有不同权限。涉及敏感系统时,应确认数据是否离开浏览器、协作服务由谁运营、分享链接如何撤销;不能因为界面像白板就降低安全要求。
草图的完成条件不是“讨论结束”,而是结论已经进入 ADR、任务或正式架构模型,画布上仍有价值的上下文得到整理。未确认的箭头、临时便签和个人名字不应长期充当系统事实。
场景文件进入仓库
长期保留的画布保存为 .excalidraw,只读消费端使用 SVG 或 PNG。目录按主题建立单一 owner,并在 README 说明结论入口。JSON 源的 diff 可能受到元素顺序和坐标影响,评审应结合渲染图,避免逐字符解释坐标噪声。
design-notes/
checkout-review.excalidraw
checkout-review.svg
checkout-decision.md多人协作结束后,由 owner 完成一次收敛提交:删除无意义游标痕迹,命名关键分组,确认字体和附件,关联决策。项目接入不追求实时把每个笔画写入 Git,而是在稳定检查点保存可恢复场景。
正向验证场景与输出
使用组件包集成时,应把包版本、导出参数和字体作为构建配置。程序化导出需要同时传入元素、应用状态和文件集合,否则包含图片的画布可能导出空占位。
const svg = await exportToSvg({
elements,
appState: {exportBackground: true},
files,
})正向实验在新浏览器配置中打开场景,确认文本、分组、链接和内嵌图片完整,再生成只读输出并检查尺寸与可访问描述。成功证据包括源文件、输出、包或应用版本及关联决策,而不是只保留分享链接。
反向证据与常见故障
反例可以移除 files 数据后重新导出,确认门禁能发现缺失附件;也可以只改 SVG,证明重建会产生差异。协作链接撤销后仍可打开的测试,用来识别链接权限和浏览器缓存之间的区别。错误必须留下最小场景和控制台日志,避免把含敏感内容的完整会议画布提交给外部 issue。
场景无法打开时先检查 JSON 是否完整、版本兼容和文件引用;文字错位先查字体;协作状态丢失则核对链接、加密片段和服务可用性。大型画布卡顿多半来自元素数量、内嵌图片和实时协作广播,继续扩大单画布只会放大故障传播。
数据边界与发布策略
画布经常包含未公开方案、人员名字、内网域名和客户上下文。发布前逐项检查可见元素、隐藏或移出视口的元素、链接、内嵌图片与图片元数据。只读 SVG 也可能带有链接和文本,不能把“图片格式”当作脱敏保证。
权限上,协作会话只给参与者,归档源进入受控仓库,公开站点只接收审查后的输出。集成应用不得把生产 Token 注入浏览器组件。容量治理关注场景大小、图片数量、协作人数和归档频率;超过阈值时按主题拆图,并把稳定事实迁移到更结构化的载体。
清理、回滚与迁移
临时协作结束后撤销分享、清除不再需要的浏览器存储,并确认源文件已由正确 owner 接管。删除场景前检查其 ADR、工单和文档引用。版本升级造成输出变化时,回滚包版本和字体环境,保留最小场景作为兼容夹具。
迁移退出时同时保存 .excalidraw、标准 SVG/PNG 和关联决策。目标工具若不能完整导入手绘元素,至少要保证只读输出可查,关键结构已进入正式模型。恢复演练应在无原协作会话的环境中完成,证明团队拥有资产,而不是只拥有一个临时链接。
