Extra2D/.trae/documents/DataStore 改进计划.md

80 lines
2.8 KiB
Markdown
Raw Normal View History

## DataStore 改进计划(基于 Switch FS Save 示例)
### 阶段一Switch 平台存档支持
#### 1.1 添加存档挂载管理
- **目标**: [data.h](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/include/extra2d/utils/data.h) 和 [data.cpp](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/src/utils/data.cpp)
- **内容**:
- 添加 `mountSaveData()` 方法挂载存档
- 添加 `unmountSaveData()` 方法卸载存档
- 添加 `commitSaveData()` 方法提交更改
- 支持自动挂载/卸载 RAII 模式
- **预期收益**: 支持 Switch 官方存档系统
#### 1.2 用户账户集成
- **目标**: [data.h](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/include/extra2d/utils/data.h)
- **内容**:
- 添加 `setUserId()` / `getUserId()` 方法
- 自动获取当前用户ID使用 `accountGetPreselectedUser`
- 支持用户特定的存档路径
- **预期收益**: 支持多用户存档隔离
### 阶段二:事务和缓存优化
#### 2.1 事务支持
- **目标**: [data.cpp](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/src/utils/data.cpp)
- **内容**:
- 添加 `beginTransaction()` 开始事务
- 添加 `commit()` 提交事务
- 添加 `rollback()` 回滚事务
- 批量写入优化减少文件IO
- **预期收益**: 数据一致性和性能提升
#### 2.2 缓存机制
- **目标**: [data.cpp](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/src/utils/data.cpp)
- **内容**:
- 添加内存缓存层
- 延迟写入Lazy Write
- 缓存失效策略
- **预期收益**: 减少文件IO提升读写性能
### 阶段三:数据格式扩展
#### 3.1 JSON 支持
- **目标**: [data.h](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/include/extra2d/utils/data.h)
- **内容**:
- 添加 JSON 格式支持(保留 INI 兼容)
- 嵌套数据结构支持
- 数组类型支持
- **预期收益**: 更灵活的数据结构
#### 3.2 二进制格式支持
- **目标**: [data.cpp](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/src/utils/data.cpp)
- **内容**:
- 添加二进制序列化格式
- 更小的文件体积
- 更快的读写速度
- **预期收益**: 性能和存储优化
### 阶段四:安全和备份
#### 4.1 数据校验
- **目标**: [data.cpp](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/src/utils/data.cpp)
- **内容**:
- 添加 CRC32/MD5 校验
- 数据完整性检查
- 损坏数据恢复机制
- **预期收益**: 数据可靠性
#### 4.2 自动备份
- **目标**: [data.h](file:///c:/Users/soulcoco/Desktop/Easy2D/Extra2D/Extra2D/include/extra2d/utils/data.h)
- **内容**:
- 自动备份机制
- 多版本存档
- 备份恢复接口
- **预期收益**: 数据安全
---
**预计总工作量**: 6-8 小时
**优先级**: 高1.1, 1.2> 中2.1, 3.1> 低2.2, 3.2, 4.1, 4.2