- 目标:把文件/文本传输这件事做得轻盈、顺滑、可靠,且易于自托管。
- 现状快照:断点续传、分块与背压、跨浏览器(含 Safari/Firefox)、Docker 一键部署。
- 范围:仅文件/文本传输(点对多),以房间为单位进行会话。
-
P0 代码优化与瘦身
- 架构收敛与边界清晰:传输(发送/接收)、WebRTC 封装、状态管理与 UI 分离;拆分过大文件,公共类型/常量下沉共享。
- 冗余清理与精简:移除死代码与未用导出;合并重复工具与重复逻辑(封包/解包保留权威实现)。
- 配置与命名统一:分块大小/批大小/背压阈值来自单一配置源,仅统一来源,不改既有行为。
- 状态管理收敛:以 Zustand 为唯一状态源;自定义 hooks 负责订阅与意图触发,不承载业务逻辑。
- 异步与错误路径简化:统一 Promise/事件用法与返回值;集中错误类型与边界。
- 日志与调试(本批重点):统一 logger(error/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/磁盘写入)
感谢关注与贡献!