MiniS3 Journey¶
从空目录开始,依次完成任务卡;先动手,卡住时再展开补丁。
在 VSCode 中学习¶
使用专用学习仓库,让 VSCode gutter 与 Source Control 只显示当前 stage; 主工作区始终不会被修改。
python journey/tools/build_journey.py study 3
code ../MiniS3-journey-workspace
如果要自己实现,先准备上一 stage 的干净基线,再检查当前成果:
python journey/tools/build_journey.py attempt 3
python journey/tools/build_journey.py check 3
check 会运行该 stage 的累计 tests.txt 子集,并输出当前树相对补丁直接
累积出的参考树的 git diff --stat。study 和 attempt 覆盖已有学习内容前
会明确确认;用 --yes 跳过提示,或用 --workspace PATH 选择其他专用仓库。
| Stage | 主题 | 新增测试 | 教材章节 |
|---|---|---|---|
| 01 | 脚手架与对象值 | 3 | 1 |
| 02 | Bucket 状态与确定性 ID | 0 | 3 |
| 03 | 持久化存储边界 | 0 | 5 |
| 04 | 对象服务门面 | 15 | 2 |
| 05 | 版本历史投影 | 3 | 3 |
| 06 | Listing 与目录幻觉 | 5 | 4 |
| 07 | Manifest 发布崩溃矩阵 | 5 | 5 |
| 08 | 目录 fsync 与启动清理 | 3 | 5 |
| 09 | Multipart 领域与校验 | 0 | 6 |
| 10 | Multipart 持久暂存 | 1 | 6 |
| 11 | Multipart 原子完成 | 4 | 6 |
| 12 | Multipart 崩溃恢复 | 2 | 6 |
| 13 | 条件请求与 CAS | 4 | 7 |
| 14 | 确定性生命周期过期 | 4 | 8 |
| 15 | 公开 API 与守链收官 | 0 | 9 |
journey attempt目前为实验性占位;未来将按 CS336 范式重写为测试驱动作业(预置测试与接口桩,实现至转绿,check即评分器)。