补充多线程联调协作文档

This commit is contained in:
2026-04-01 18:59:30 +08:00
parent a70dc8d5d0
commit f7393907ec
2 changed files with 258 additions and 0 deletions

View File

@@ -0,0 +1,257 @@
# 多线程联调协作方式
## 目标
当前项目已经进入前后端联调阶段,并且存在多条并行工作线程:
- 前端线程
- 后端线程
- 总控线程
这份文档用于明确三条线程如何协作、各自负责什么,以及如何通过共享文档同步事实,而不是靠口头记忆维持项目状态。
---
## 1. 当前协作模型
当前采用的是:
- 一个代码仓库
- 多条并行线程
- 两份根目录协作文档
- 一名全局维护者负责总览和收口
对应关系:
- 前端线程:推进小程序页面、状态链、模拟器接入、地图与体验层
- 后端线程:推进接口、配置发布、会话生命周期、业务数据模型
- 总控线程:负责全局判断、主线推进、交叉影响评估、文档索引与阶段总结
---
## 2. 两份协作文档的职责
当前跨线程沟通只走两份文件:
- [f2b.md](D:/dev/cmr-mini/f2b.md)
- [b2f.md](D:/dev/cmr-mini/b2f.md)
### 2.1 `f2b.md`
由前端线程维护,用于记录:
- 前端当前联调状态
- 前端已经按什么契约实现
- 需要后端确认什么
- 当前前端阻塞点是什么
它不是后端说明文档,也不是讨论区。
### 2.2 `b2f.md`
由后端线程维护,用于记录:
- 后端已经具备什么能力
- 前端应如何接入
- 哪些地方不允许前端自行假设
- 哪些接口和字段已经定版
它不是前端反馈文档,也不是需求池。
---
## 3. 总控线程的职责
总控线程不替代前后端线程,而是负责:
- 维护全局主线
- 判断当前阶段的优先级
- 识别跨层影响
- 把重要结论收进正式文档
- 在代码、文档、配置之间建立一致性
### 3.1 总控线程要看的信息源
总控线程至少持续关注:
- [readme-develop.md](D:/dev/cmr-mini/readme-develop.md)
- [文档索引.md](D:/dev/cmr-mini/doc/文档索引.md)
- [f2b.md](D:/dev/cmr-mini/f2b.md)
- [b2f.md](D:/dev/cmr-mini/b2f.md)
以及当前代码事实:
- `miniprogram/`
- `backend/`
- `tools/mock-gps-sim/`
### 3.2 总控线程不应该做的事
总控线程不应该:
- 抢写前端线程的 `f2b.md`
- 抢写后端线程的 `b2f.md`
- 把临时讨论直接当作正式契约
- 在两边尚未确认时擅自“替双方拍板”
总控线程只维护:
- 全局状态
- 正式设计文档
- 阶段结论
---
## 4. 推荐协作顺序
当前建议三条线程按下面这条链协作:
```text
前端/后端各自推进
-> 遇到跨边界事项时写入 f2b / b2f
-> 总控线程读取两份协作文档
-> 判断是否需要:
- 调整主线优先级
- 更新正式方案文档
- 修正索引与阶段总结
-> 再继续推进代码
```
也就是说:
- `f2b / b2f` 是协作事实层
- `doc/` 是正式知识层
- 代码是最终实现层
---
## 5. 文档分层原则
为了避免信息再次散掉,建议始终遵守下面的分层:
### 5.1 协作文档
位于仓库根目录:
- [f2b.md](D:/dev/cmr-mini/f2b.md)
- [b2f.md](D:/dev/cmr-mini/b2f.md)
特点:
- 强时效
- 以联调事实为主
- 可频繁修改
- 不要求体系化
### 5.2 正式文档
位于 `doc/`
- 配置
- 玩法
- 动画
- 体验
- 渲染
- 调试
- 网关
特点:
- 结构化
- 可长期维护
- 只收已经收敛的结论
### 5.3 代码与配置
最终行为以代码和线上配置为准。
如果出现:
- 协作文档和正式文档不一致
- 正式文档和代码不一致
优先级应该是:
```text
代码 / 运行结果
> 正式文档
> 协作文档
```
然后由总控线程负责把文档补齐。
---
## 6. 当前适合这种方式的原因
这个项目已经同时存在多条主线:
- 小程序前台
- 后端业务接口
- 配置发布链
- 模拟器
- H5 详情页
- 规则和运行时
如果所有讨论都只堆在一个线程里,会出现:
- 信息丢失
- 职责不清
- 已确认结论反复讨论
- 线程之间互相覆盖
采用当前这种方式的好处是:
- 前端线程可以只关心前端接入和用户体验
- 后端线程可以只关心接口和业务语义
- 总控线程能持续维护全局一致性
---
## 7. 当前项目的推荐工作法
### 7.1 前端线程
优先维护:
- 页面
- 宿主层
- 模拟器接入
- 交互和体验
并把需要后端确认的事项写入 [f2b.md](D:/dev/cmr-mini/f2b.md)。
### 7.2 后端线程
优先维护:
- API
- 会话语义
- release / manifest / config 发布链
- workbench / dev tools
并把前端需要知道的契约写入 [b2f.md](D:/dev/cmr-mini/b2f.md)。
### 7.3 总控线程
优先维护:
- 全局文档索引
- 阶段总结
- 主线优先级
- 正式架构文档
- 跨层决策
---
## 8. 一句话约定
当前项目的协作方式正式定为:
> 前后端线程分别维护自己的协作文档, 总控线程负责读取两份协作文档并维护全局主线、正式文档和阶段结论。
这样做的目标不是增加文书工作,而是:
- 让并行开发不串线
- 让重要结论沉淀下来
- 让总控线程始终知道项目全貌