本網站使用 Kohei Koyanagi 開發的軟體自動翻譯為多種語言。為確保準確,請參考原始 英文 版本。

Splync v1.9 可針對每筆開銷設置自定義分攤比例

Splync 的用戶反饋

在推出 Splync v1.5 約一個半月後——這次更新終於允許按項目和類別自定義分攤比例——我們收到了一波新的反饋。v1.5 更新需要進行大量的伺服器端更改,所以當時我認為這種細緻度對大多數使用情境已經“足夠好”。然後一些新用戶提出了一個簡單而合理的問題:“我們能否為每筆開銷設定自定義分攤比例?”他們的旅行項目中,有時只有兩個成員需要分攤特定費用,而其他時候三個成員都要攤分。對於 Splync v1.8,答案不幸是不能。我解釋說,他們可以創建額外的類別,為那些特定情況量身定制自定義比例——這是一種變通方法,不是真正的解決方案。

分形森林的壓力

回想起 v1.5 的工作量,令人感到有些壓力。首先,我必須讓項目有自己的分攤比例。接著,類別也需要自定義比例。當時我以為已完全掌握了整棵樹——從每根樹枝上收集每一個果實。但在為每筆開銷設置比例時,情況不同。感覺每次摘下果實,就有一顆新樹在原地長出來。不是無窮的分形森林,而是清晰的兩層結構:一層生出下一層。在 v1.5 的邏輯中,開銷首先繼承項目的比例。如果類別有自定義比例,會覆蓋項目的數值。因此,在添加每筆開銷的比例時,我發現自己在覆蓋之上再加一層覆蓋。結構變成了一個階梯式的覆蓋——技術上正確,但心智上混亂。很難證明再構建一層拼湊邏輯的合理性。

Splync v1.9 的範式改變

突破點來自於將結構反轉。與其讓“項目 → 類別 → 開銷”逐層覆蓋,為何不反過來思考?每筆開銷的比例 → 每類別的比例 → 每項目的比例。這種順序反映了人們的思考方式:如果一筆開銷有自己的規則,就應遵循。如果沒有,則類別模式是合理的。如果連這也失效,就回到項目預設。不再是階梯覆蓋,而是一個清晰的優先層級。當我從這個角度看結構時,偽分形森林的霧瞬間消散。實施路徑變得明顯:“每筆開銷都會檢查是否有自定義比例。如果有,則使用;如果沒有,則檢查類別比例;如果仍然沒有,則使用項目預設。”

在天空下行走

新的邏輯感覺簡單、可預測且數學上合理。為了支持這個優先系統,我們為每筆開銷的分攤增加了一個專屬的 MariaDB 表,有點像為每類別分攤建立的表。開銷詳情表也需要擴展,就像 v1.5 中類別詳情表一樣。一旦底層的“兩層”設計變得清晰,其餘的只是小心編碼——無論是應用程式還是伺服器上。儘管如此,這條路在某些地方仍然顯得冒險,就像沒有地圖在黑暗森林中行走。我想讓頭腦清醒一下,便走到戶外。空氣清新而清晰。在社區散步時,我看到遠處的富士山,在完美藍天的映襯下,湛藍而晶瑩剔透。雖然距離近百公里,卻看起來近在咫尺。這一刻感覺像個提醒:即使我以為自己在森林中行走,其實我是在開闊的天空下行走。

Splync v1.9 可以做什麼——每筆開銷的自定義分攤

Splync v1.9 源自那一刻的清晰。我回到家,完成了新端點的連接,準備好新的伺服器邏輯,組織相關介面,將 v1.9 提交給 Apple,然後終於入睡。審核比平時更早完成。醒來時,Splync v1.9 已經獲批並自動在 App Store 上發布。從這個版本開始,分攤變得更靈活。如果你和 John 和 Kate 旅行,你可以將基本開銷平均分攤給三人。但在用餐時,可能會選擇“25% : 50% : 25%”的分攤比例,因為 John 通常吃得是兩倍。如果 John 有一餐沒吃——比如在生蠔餐廳——你可以將那頓飯設為“50% : 0% : 50%”,這樣他就不會為沒吃的東西付錢。隨著 v1.9 的推出,Splync 現在可以在統一邏輯中支持每項目、每類別及每筆開銷的比例。基礎穩定且數學合理。接下來的挑戰是介面:其他分攤應用程式提供了更流暢、更時尚的分攤比例調整方式。Splync 現在有後端能力支持這些改進。我們將一一著手。