4.5 KiB
4.5 KiB
风险与架构决策
1. 风险台账
| ID | 风险 | 影响 | 应对 |
|---|---|---|---|
| R-01 | 不同 Spine 版本二进制格式不兼容 | 错误预览或导入失败 | 五套匹配 Runtime;Editor 主/次版本强校验 |
| R-02 | 3.8 早期格式变化 | 部分 3.8 文件无法读取 | 正式范围从 3.8.20 开始;旧文件尽力识别 |
| R-03 | SKEL 不含可直接修改的图片路径 | 生成工程显示 Missing | Editor 双重导入/导出原型;输出布局降级方案 |
| R-04 | 五套 Runtime 符号/API 冲突 | 无法链接或运行不稳定 | 独立动态模块、隐藏符号、稳定 C ABI |
| R-05 | 损坏输入使 Runtime 崩溃 | 主程序退出 | 有界预检、模糊测试;必要时改 helper process |
| R-06 | Spine Launcher 缺少目标缓存版本 | 离线转换失败 | 版本能力预检;不自动下载;明确修复提示 |
| R-07 | Editor 自身的联网或授权行为 | 离线验收失败 | 真正断网测试;明确前置条件;不修改或绕过 Editor |
| R-08 | PMA/WebP 边缘错误 | 预览或解包出现色边 | 格式矩阵与 Alpha 视觉回归;Alpha 处理交给官方解包器 |
| R-09 | Polygon-packed Mesh 难以还原原图 | 图片包含邻近像素或裁切错误 | 仅使用官方解包器;失败时报告限制并终止 |
| R-10 | 官方测试素材误入安装包 | 许可与体积风险 | 打包白名单、哈希禁止清单、发行物解包检查 |
| R-11 | Qt/Runtime 许可遗漏 | 无法合规发行 | 依赖清单、licenses、About 页面、发行关卡 |
| R-12 | 自定义路径和 Unicode 处理错误 | Editor 无法启动 | 参数数组、canonical path、双平台路径测试 |
| R-13 | 巨大资源耗尽内存 | 卡死或崩溃 | 输入限制、预算检查、按需解码、可取消任务 |
| R-14 | 跨补丁 Editor 行为变化 | 同一主/次版本结果不同 | 记录实际补丁;固定测试矩阵;报告转换环境 |
2. 已接受架构决策
ADR-001:生成 .spine 使用官方 Editor
- 状态:接受
- 决策:调用本地已授权 Spine Editor,不自行写
.spine。 - 原因:
.spine是编辑工程格式;官方 CLI 已提供数据导入能力。
ADR-002:版本范围为 3.8.20+ 至 4.3
- 状态:接受
- 决策:3.8.20+、4.0、4.1、4.2、4.3;不支持 3.8 以下。
- 原因:覆盖目标游戏资源,同时控制旧格式维护成本。
ADR-003:预览进入首版
- 状态:接受
- 决策:用户确认转换前必须可离线预览。
- 原因:避免批量生成后才发现配对、Scale、Alpha 或版本错误。
ADR-004:每个主/次版本独立 Runtime
- 状态:接受
- 决策:五个 Runtime 插件,通过统一 C ABI 接入。
- 原因:官方要求 Runtime 与数据主/次版本同步,API 也会变化。
ADR-005:仅使用官方 Atlas 解包
- 状态:接受
- 决策:官方 Texture Unpacker 是唯一纹理解包实现;失败时任务失败。
- 原因:官方对自身 Atlas、PMA、旋转和多边形打包语义最权威,且软件以前置正版 Spine 为使用条件。
ADR-006:运行期全离线
- 状态:接受
- 决策:无 CDN、下载、遥测、资源上传和在线 API。
- 原因:资源敏感性、稳定性和用户要求。
ADR-007:官方测试资源不发行
- 状态:接受
- 决策:官方资源只用于开发/CI,最终安装包不包含。
- 原因:用户明确要求,并减少许可与安装体积风险。
ADR-008:Qt 6 + CMake + MSVC/Apple Clang
- 状态:接受
- 决策:主程序 C++20,CMake 3.25+,Windows MSVC v143。
- 原因:跨平台 UI、进程管理、图片插件和成熟构建生态。
3. 原型后待决策事项
ADR-P01:Runtime 插件还是 helper process
默认先验证动态插件。若损坏文件可导致不可接受的进程级崩溃,则采用 helper process 隔离。
ADR-P02:macOS 架构
首发 Apple Silicon 或 Universal 2,根据目标用户和五套 Runtime 构建成本决定。
ADR-P03:测试框架
Qt Test 与 Catch2 二选一,以 Runtime 插件和参数化兼容矩阵的便利性为主要标准。
ADR-P04:SKEL 图片路径自动化方案
由 Editor 双重导入/导出原型结果决定正式流程及是否存在可接受降级。
ADR-P05:Windows 安装器
在 MSIX、WiX/MSI、Inno Setup 中选择,需满足离线安装、签名和干净卸载。
4. 决策变更规则
变更已接受决策时必须记录:
- 变更原因
- 新证据或测试结果
- 对范围、兼容性和许可的影响
- 数据迁移或设置迁移方案
- 负责人和日期