iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Vibe Coding

做一個團購後端,順便搞懂那些事 系列

初入 Spring Boot 的世界,想試著用 AI 輔助開發,但不只是讓 AI 幫我寫程式。透過和 AI 討論、比較不同方案,思考技術取捨與決策,理解程式背後的原因。希望這 30 天不只做出一套後端系統,也能在 AI coding 的過程中,練習真正屬於自己的技術判斷力。

參賽天數 28 天 | 共 28 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文 |團隊AI的I,是I人的I
DAY 21

Day 21|截止到期觸發扣款:解決「所有機器看到同一份任務」

每張訂單的截止時間都不同,截止時間一到就要自動結算,因此需要的是「到指定時間執行一次」,而不是固定週期掃描資料庫。 最初做了第一版,使用 JDK 的 Delay...

DAY 22

Day 22|多台機器如何不重複結算

團購訂單有截止時間,時間一到,系統會自動結算,向每位參與者扣款。但是同一張訂單不能被多台機器同時處理,也不能因為其中一台機器故障就從扣款排程中消失。 Day 2...

DAY 23

Day 23|結算失敗後,重試要從哪裡繼續?

團購訂單到了截止時間,系統會自動結算:先把訂單從 OPEN 改成 CLOSED,再向參與者扣款,問題是:「如果結算做到一半失敗了,比方說資料庫突然斷線,下一次重...

DAY 24

Day 24|推播不能跟著交易一起送

使用者下單後,畫面上的可用餘額要立刻更新,專案中透過前端與伺服器維持一條 WebSocket 連線,伺服器推到 /user/queue/balance,讓當事人...

DAY 25

Day 25|多台機器時,WebSocket 通知送不到

這個服務設計上原本就假設會有多個實例同時運作,MySQL 與 Redis 由所有實例共用。假設現在有機器A、機器B,Alice 的 WebSocket 連在機器...

DAY 26

Day 26|通知會漏、會亂序,訊息裡該放什麼?

使用者下單、刪除品項,或訂單結算扣款後,伺服器透過 WebSocket 推送一則訊息,讓前端更新畫面上的可用餘額,然而,通知並不保證送達,在交易 commit...

DAY 27

Day 27|登入 API 被暴力猜密碼,該限制誰?

client端透過呼叫 POST /login/create_token,帶上帳號與 RSA 加密後的密碼登入系統,這支 API 原本沒有次數限制,攻擊者可以對...

DAY 28

Day 28|使用者重送「下單」,同一份餐點會被扣兩次款嗎?

client 端呼叫 POST /order/create_user_order 下單時,如果請求已經寫入資料庫,但回應在傳送途中遺失,client 端只能重送...