靜心救世者 heart-break開發日誌

2026-08-31

一條清理規則,差點把波形全部刪光

索引一壞,清孤兒就變成清全部

圖為示意,波形是合成的。

每場結束會存一份波形檔。手機上只留最近四十場,舊的自動刪掉。

清理規則原本是這樣寫的:刪掉「索引裡沒有人指向」的檔案。那種檔案是孤兒, 留著只是佔空間。聽起來很合理。

兩條各自合理的規則湊在一起

另一邊還有一條:索引讀不出來的時候,就留空重新開始。那裡我還寫了一句 註解安慰自己——波形檔還在。

那句話只在下一場開始之前為真。

索引壞掉 → 清空 → 你玩了下一場 → 索引裡只有這一筆 → 其餘三十九場全部 變成孤兒,全部刪掉。

而索引壞掉不需要什麼災難。資料結構多一個欄位,舊的就讀不出來了。

改成不依賴索引

檔名本身是零填補的時間戳,字典序就是時間序。所以「留最新的四十個」 只要排序檔名就好,不必問索引任何事情,孤兒也不用特別處理—— 它們就是舊檔,會照同一條規則慢慢老掉。

順帶加了一條:只碰我們自己的副檔名。別人放進那個資料夾的東西不歸我刪。

一行測試都沒有

這一層原本完全沒有測試,而它會刪玩家的檔案。補了九個,然後回頭用舊的實作 再跑一次,確認它們在舊的寫法上真的會失敗。

← 其他的開發日誌