CHAPTER 27 · PRACTICE WORKSPACE

TODO B:Mock 同步、失敗復原與 GAS 延伸

完成可操作的 mock 同步原型;真實 GAS 串接列為有完整步驟的延伸

02 Checkpoint 1 1/3
  1. 01Starter讀懂作品骨架
  2. 02Checkpoint 1加入第一項能力
  3. 03Checkpoint 2累積第二項能力
  4. 04Solution核對完整結果

TASK STATUS

三項任務目前狀態

TASK-01已完成

將本機變更加入 mock 同步佇列

修改檔案:script.js

完成後看見:每筆變更顯示不同短 id,待同步數量增加且重整後仍保留

TASK-02本階段處理

驗證離線全批保留與線上全批移除

修改檔案:script.js

完成後看見:離線同步時全批保留,回到線上同步後全批移除

TASK-03稍後處理

提供重試與部署前檢核

修改檔案:script.js

完成後看見:離線重整不丟件;恢復模擬網路後成功移除並顯示 GAS 邊界

WORKSPACE

本階段實作區

已完成 TASK-01;先核對可見結果,再前往 TASK-02。

FOCUS TASK · TASK-02

現在只處理:驗證離線全批保留與線上全批移除

修改:script.js

完成後:離線同步時全批保留,回到線上同步後全批移除

講解時展開:2 個小型比較

離線保留 vs 線上移除|同步結果不同

比較:離線時全批保留等待恢復,線上成功後才可移除;不能只測 queue 歸零。

現在做:在 Checkpoint 2 清除 course-sync-queue,點 #change 兩次;點 #network 進入離線後按 #sync,確認 #status 為「離線|待同步 2 筆」且 storage 仍有 2 筆;切回線上再按 #sync,確認「線上|待同步 0 筆」與 storage=[]

看預期與證據

預期:離線的 mockSend 失敗時整批保留;線上成功後才移除整批,不能只以某一筆成功判定完成。

證據:留下離線/線上兩次 status、兩個短 id、兩個 storage 陣列長度與線上成功後空陣列五項證據。

整批同步 vs 單筆移除|驗證資料完整性

比較:同步應以整批為單位驗證,避免只移除第一筆就誤判成功。

現在做:在 Checkpoint 2 清除 course-sync-queue,點 #change 兩次並記下兩個短 id;離線同步後確認兩個 id 都仍在 #queue 與 storage,恢復線上同步後確認兩個 id 都不再出現。

看預期與證據

預期:syncQueue 逐筆等待 mockSend,但只保留失敗項;全批成功時兩筆都移除,不能只刪除第一筆就顯示成功。

證據:留下同步前兩個 id、離線後兩個 id 仍存在、線上後 queue 長度 0 與 storage=[] 四項證據。

需要排錯時查看:任務循環(觀察 → 預測 → 實作 → 故障 → 驗收)
  1. A|觀察:在 Checkpoint 1 新增兩筆不同 id 的變更並重整,確認 queue 已持久保存;再切離線,準備檢查整批失敗策略。
  2. B|預測:新增兩筆變更,切換離線後按「立即同步」,確認兩筆全數保留;切回線上再同步,確認兩筆全數移除。
  3. C|實作:在 script.js 的 syncQueue() 完成「驗證離線全批保留與線上全批移除」,一次只處理本任務責任。
  4. D|故障:若結果不一致,先依原操作重現,再檢查 syncQueue() 與 script.js,最後重跑原操作。
  5. E|驗收:離線時兩筆全保留;線上時兩筆全移除

完成條件:DONE-02:離線同步時全批保留,回到線上同步後全批移除;離線時兩筆全保留;線上時兩筆全移除

MOCK SYNC

待辦事項 Mock 同步中心

待同步 0 筆

    尚未執行部署預檢

    CONTINUE

    繼續完成 TASK-02

    前往 Checkpoint 2,依要求完成「驗證離線全批保留與線上全批移除」。

    前往 Checkpoint 2:完成 TASK-02

    CHAPTER HANDOFF

    第 26 章 → 第 27 章 → 第 28 章

    接收:第 26 章只提供本機 CRUD 的操作與保存證據;本章使用獨立的 course-sync-queue,不讀取或共用第 26 章的 course-todos runtime。

    交付:本章交給下一章的是 queue item id、離線失敗保留、線上 retry 與 mock preflight 證據;queue 歸零不等於 GAS 或 Sheet 已寫入。

    下一章:第 28 章另行驗證 Production URL、格式預檢與人工展示證據,不把本章 mock 結果當成正式部署證明。

    回到第 27 章成果證據