课程编写状态与能力验收
教材完成与个人能力分开记录
| 内容 | 当前状态 | 仍需要什么证据 |
|---|---|---|
| 14 卷、168 章独立正文 | 全部齐备;每章有 IM 需求、理论、练习和验收目标 | 阅读与独立实践由学习者按阶段完成 |
| 固定源码参照 | OpenIM 阅读地图记录版本与教学边界 | 具体运行条件、源码路径和观察结果须另记 |
| 本轮来源补齐 | 18 篇先经人工审阅的章节已取得 DeepTutor 原稿,八块状态逐章核验、差异归档 | 原稿生成不等于课程示例已运行 |
| 学习与工程能力 | 个人进度模板按阶段和章节填写 | 正常路径、失败变式、运行环境、测量与迁移能力 |
168/168 只表示静态章稿齐备。此前缺失原稿的 18 章为 01.10–01.11、02.09–02.12、04.08–04.12、14.05–14.08、14.10–14.12;它们的实际请求、原稿、审阅记录和来源散列保存在 drafts/platform_engineering/manual_*,补生成清单已清零。课程正式页采用审阅后的业务合同,不直接照搬原稿。
按学习路线跨卷推进,具体能力在章内练习及下方 P1–P5 项目中反复验证。书面答案、纸上推导、程序运行和真实服务保证分别注明范围。
一章达到教学深度需要什么
一章围绕一个可解释的问题展开,可以拆成多次课。每个新的关键机制至少需要:
- 动机与边界。 旧办法在什么条件下失效,目标是什么。
- 先修与定义。 新词逐一解释,前置有具体课程位置。
- 机制推导。 用状态、数据结构、时间线或数量关系说明为什么成立。
- 完整示例。 输入、过程、输出与代码位置清楚,片段与完整程序明确区分。
- 反例与条件。 改变哪个假设会失败,怎样观察。
- 实践阶梯。 先预测和复现,再独立变式,最后迁移到业务需求。
- 反馈与验收。 常见误区、提示和可检查成果。
- 进一步取舍。 方案代价、运行条件、版本与维护责任。
字数只能提醒内容是否过度压缩,不能替代这些要素。一个覆盖多个复杂主题的页面,应拆成多章;一个术语表或命令清单不能直接标为完整课程。
从初学者到高级工程实践的证据
| 层次 | 可以独立完成的事情 | 典型证据 |
|---|---|---|
| 程序入门 | 读写并解释小程序,处理数据与错误 | 逐步预测、边界测试、自己修改后的结果 |
| 后端功能 | 组织接口、数据、权限和状态 | 完整用例、正常与拒绝路径、持久性说明 |
| 正确与高效 | 分析并发、查询、资源和故障 | 不变量、反例、同口径测量与恢复记录 |
| 运行与演进 | 发布、观测、排障和兼容迁移 | 运行目标、故障时间线、灰度和回滚证据 |
| 高级工程判断 | 比较方案、处理约束变化、推动交付与接手 | 设计评审、跨团队契约、完整交付和复盘 |
每项能力应在不止一个固定例子中体现。照着参考代码完成一次,不代表可以独立处理条件改变后的问题。
五个 IM 主线项目与 AI 扩展
各项目均为逐步学习的实践设计,上游对照与固定版本见 OpenIM 阅读地图。
P1:本地会话与消息记录
S1:从消息校验到列表、会话索引、文件和测试。验收输入边界、重复记录、格式兼容、部分读写与资源关闭;明确本地模型尚未覆盖网络重复和多设备。
P2:从在线单聊到持久历史
S2 先实现 HTTP 查询和 WebSocket 内存通信;S3 增加身份、会话权限、消息保存与历史分页。分别验证伪造身份、越权会话、断连和存储失败;区分教学 SQL 路径与上游 MongoDB 路径。
P3:可靠消息、离线与多端同步
S5:明确消息身份、顺序、确认点、补拉范围、已读和设备状态。覆盖响应丢失、重复发送、双端登录、消费中断、迟到状态、积压追平与对账。
P4:可运行的 IM 系统
S6:覆盖长连接启动与退出、网关发布、重连风暴、依赖故障、监控与恢复。区分连接数、活跃消息、群聊扇出和每设备负载,保留实际环境与验证记录。
P5:IM 架构答辩与接手
S7:选择单聊小群、大群广播、客服或团队协作中的一个场景,说明状态、保证、容量、协议兼容与迁移;改变群规模、离线时长、设备数或旧客户端约束后修订方案。
AI 扩展:聊天中的资料助手
先建立虚构资料与查询集、可访问范围和评测基线,再加入检索、生成和工具。分别检查证据、权限、效果、成本与恢复;不以完成该扩展作为 Go IM 主线答辩的前置。
学习记录与内容记录分开
章节“已写”是教材状态,实验“通过”是某次运行状态,学习者“掌握”是经过独立解释与迁移后的判断。三者分别记录。
本系列交付的是静态教材;学习项目的构建、运行、压测和生产适用性须在个人环境分别验证。证据可记录在个人进度页。