◎
沿运行链路拆解
每章都从一个用户动作或系统事件开始,追踪它如何穿过网络、数据层和界面,而不是只解释孤立的类。
这张图故意省略了大量产品功能,却保留了绝大多数问题都必须经过的“骨架对象”。理解这些对象的所有权和消息流,之后再进入贴纸、Stories、群组通话、支付或 WebView,都会容易很多。
| 阶段 | 章节 | 你最终能回答的问题 |
|---|---|---|
| 建模 | 01–03 | 这个百万行客户端的稳定边界在哪里?启动后谁拥有账号、会话和窗口? |
| 网络 | 04–05 | 一个 TL 请求怎样发出?推送乱序或丢失时,客户端怎样恢复一致? |
| 数据 | 06–08 | User/Chat/Channel/HistoryItem 如何归一化?发送消息为什么先出现在屏幕上? |
| 界面 | 09 | rpl、lifetime、Controller、Memento 如何协作而不把业务状态锁死在 Widget 里? |
| 重型子系统 | 10–12 | 下载如何并发调度?本地数据怎样加密?通话怎样跨过信令与媒体引擎边界? |
| 工程 | 13–14 | 平台差异、代码生成与发布怎样隔离?遇到问题该从哪里下断点? |
01 → 09 顺序,先拿到主干,再按兴趣选 10–13。02 / 03 / 06 / 09 / 13,重点看边界和生命周期。04 / 05 / 08,把 request、update、random_id、pts/seq 放进同一张图。基线说明
本教程分析的是本地快照 7.0.6(AppVersion 7000006)。上游仍会快速演进;文中所有源码链接都固定到 v7.0.6,概念性结论则尽量只依赖长期稳定的结构。