昨天,私訊可以安全地排隊了。今天要回頭處理 Day 05 留下的一個問題:第一版的 Macaron 說好什麼都不記得,那一個人選了哪一組、最後收到的是哪一份答案,這些紀錄還要不要留?
乍看之下好像有點矛盾,既然說好不記得,為什麼還要留紀錄?
我想了一下,這其實很像發票。你去便利商店買一瓶水,店家會開一張發票,記下幾點幾分、賣了什麼、多少錢,但這不代表店家記得你是誰、你上次買了什麼、你喜歡喝哪一種。
Macaron 的「不記得」,說的是後面那一種。第一版不會建立任何關於你這個人的記憶,不會記住你問過什麼、抽過哪些牌,也不會拿過去的紀錄來影響這一次的解讀。
但前面那一種,也就是「這一筆占卜發生過、送出的是哪一份」,還是要留。Day 01 我承諾過,每個人收到的都是同一份答案,而且我永遠查得到他收到的是哪一份,如果連這筆紀錄都沒有,這個承諾就沒辦法兌現。
所以今天,Macaron 多了一份「占卜紀錄」。它不是隨便寫的,而是把 Day 21 到 Day 25 那一整串已經確認過的東西,重新核對一次再整理出來:凍結的照片、公開的貼文、鎖定的選擇、準備好的私訊,以及待送清單上那一項工作最後的結果。
而且只有私訊在模擬環境裡完整成功的那一筆,才會產生紀錄。對方沒開私訊、可以重試、不確定有沒有送到,或是中間有任何一樣讀不回來,都不會產生。
一筆紀錄裡會寫下選了哪一組、抽到的牌和正逆位、內容指紋、鎖定選擇的指紋、這則私訊的送件編號,還有三種時間。至於使用者是誰,Macaron 不會重新拿 Discord 的帳號去做任何處理,而是直接沿用前面已經產生好的一個看不出是誰的編號;留言原文、錯誤訊息的原文、密碼和私人路徑,也都不會出現在紀錄的摘要裡。
同一篇占卜、同一張照片、同一個人,只能有一筆紀錄。一樣的內容再來一次,會被當成重複;換了內容,就是衝突。
Day 04 的時候,我們有了一張「允許執行的清單」,上面有兩份資料庫的設計。今天多了第三份,專門放這些占卜紀錄,前兩份則完全沒有被改動,新的東西只能往前加。
但就跟 Day 04 一樣,這一份設計還沒有真的在資料庫裡跑過。我的電腦上沒有一個安全、隔離、用完就可以丟掉的測試資料庫,所以今天能說的,只有設計和在記憶體裡的模擬,真正存進資料庫、再讀回來確認,都還是卡著。
記憶、回想、反思這些功能,也仍然留在第二版,今天完全沒有碰。
(需作者補充:「不記得你,但記得這筆交易」這個界線,你自己怎麼看?未來做個人占卜、要開始記得使用者的時候,你最想先記住的是什麼?)
設計有了,但設計只是設計。明天我想處理的是:在資料庫還沒真的跑起來之前,這件事本身,能不能也被好好地寫下來?