Files
PrivyDrop/ROADMAP.zh-CN.md
david_bai 99f264fcd0 chore(doc):update some docs
roadmap: rewrite CN/EN roadmap to focused P0/P1; remove non‑goals; add unified logging in P0
frontend: state management = Zustand + custom Hooks (CN/EN) with updated strategy
2025-10-13 00:03:44 +08:00

70 lines
3.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PrivyDrop 项目路线图
## 简介
- 目标:把文件/文本传输这件事做得轻盈、顺滑、可靠,且易于自托管。
- 现状快照:断点续传、分块与背压、跨浏览器(含 Safari/Firefox)、Docker 一键部署。
---
## 范围说明
- 范围:仅文件/文本传输(点对多),以房间为单位进行会话。
---
## 路线图
- P0 代码优化与瘦身
- 架构收敛与边界清晰:传输(发送/接收)、WebRTC 封装、状态管理与 UI 分离;拆分过大文件,公共类型/常量下沉共享。
- 冗余清理与精简:移除死代码与未用导出;合并重复工具与重复逻辑(封包/解包保留权威实现)。
- 配置与命名统一:分块大小/批大小/背压阈值来自单一配置源,仅统一来源,不改既有行为。
- 状态管理收敛:以 Zustand 为唯一状态源;自定义 hooks 负责订阅与意图触发,不承载业务逻辑。
- 异步与错误路径简化:统一 Promise/事件用法与返回值;集中错误类型与边界。
- 日志与调试(本批重点):统一 loggererror/warn/info/debug + 开关),生产默认低噪;替换散落的 console/postLog,并在房间/会话/文件维度埋点一致。
- 类型与构建健康度:收紧 TypeScript(小步),减少 any/隐式 any;保持 Lint/格式化一致。
- P0 最小测试集
- 单元测试:分块读取/切片、嵌包解析、顺序落盘器的乱序/重复/尾块处理等核心边界。
- 轻量集成:伪造数据通道验证“发送 → 接收 → 落盘”的最小闭环,覆盖背压等待与断点恢复路径。
- 后端最小单测:房间与速率限制的关键契约。
- P1 错误体验与只读网络体检
- 错误提示:用语清晰、可重试建议;显示发送/接收状态与失败简述。
- 只读体检:展示连接状态、数据通道状态、发送缓冲、当前/平均速率、最近错误;仅展示,不做复杂探测。
- P1 文档与部署一致性
- 快速上手与 Docker 自托管流程对齐;常见问题与排错路径补充;截图与术语口径统一。
- 前端架构文档与实现同步(Zustand + 自定义 Hooks)。
---
## 完成定义(达成即止)
- P0 代码优化与瘦身
- 模块边界清晰、目录与命名统一;重复实现合并,死代码清理完毕。
- 分块/批/背压等配置项有单一来源,保持现有行为不变。
- Zustand 统一为状态源;组件无业务副作用;自定义 hooks 角色明确。
- 日志体系可按等级与开关控制,生产默认低噪;无散落调试输出。
- 构建与 Lint 通过;类型告警明显减少。
- P0 最小测试集
- 关键模块单测覆盖核心边界;存在一个最小集成用例完成“发送 → 接收 → 落盘”。
---
## 术语口径
- 发送/接收(Sender/Receiver
- 房间(Room
- 分块(Chunk)与背压(Backpressure
- 断点续传(Resume
- 数据通道(DataChannel
- 落盘(OPFS/磁盘写入)
感谢关注与贡献!