iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Vibe Coding

從 GAS 到 Cloudflare D1:AI Agent 如何打造、接手並重構真實便當系統 系列

從 AI 協作打造的 GAS+Google Sheets 便當系統出發,記錄一套真實公司內部工具如何持續演進:導入 React、Cloudflare Workers 與 D1,中途再接手既有公司舊網頁與歷史資料,處理 LINE/員編登入、權限、資料遷移、CORS、Production Debugging 與測試治理。這 30 天不只展示 AI 如何快速寫出功能,更聚焦在真實系統進入長期維護後,如何透過 ChatGPT、Codex 與 Agent 工作流,讓開發從「Vibe Coding」走向可驗證、可交接、可持續演進的軟體工程。

參賽天數 29 天 | 共 29 篇文章 | 0 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21|代點餐看起來只是多一個按鈕,背後為什麼跨了五種規則?

代點餐上線後,一個人不必自己操作手機,也能由管理者替他完成訂單。但功能的終點不能只停在「資料庫多了一張訂單」。管理者還要看見被代點者的新餘額,回到成員清單時不...

DAY 22

Day 22|店家專區不是多一頁,而是 Domain 開始有自己的語言

店家專區(Vendor Hub)把店家介紹、菜單圖片、外部來源和最後點餐時間放到同一張卡片。畫面集中之後,資料責任反而更需要拆清楚:管理者換了菜單圖片,是否也...

DAY 23

Day 23|同一份訂單,為什麼最後需要「明細、樓層數、總數」三種視角?

本文核對的來源版本(eaf76fa3,分頁於 v0.15.6 加入)把訂單管理分成明細、樓層數、總數三個分頁。查一位同事訂了什麼、把便當分到各樓層、告訴店家要...

DAY 24

Day 24|歷史資料不是舊資料:它是系統的 Evidence Boundary

歷史菜單缺一張圖片,最直覺的修法是拿現在的圖片補回去。畫面會完整一些,資料也看起來更整齊。 便當系統卻把「畫面補得出來」和「歷史原本就有」拆開處理。菜單變更測...

DAY 25

Day 25|版本、Release、Changelog:功能之外,產品還需要一條時間線

看代點餐的舊版說明,代理管理員(ProxyAdmin)只能替人訂台北當日的餐,卻可以略過一般截止時間。再看後續版本,規則變成當日與未來合格開團日期都能代點,但...

DAY 26

Day 26|回頭看 GAS vs Workers + D1:什麼時候原本合理的工具開始不夠用了?

第一版選擇 GAS + Google Sheets,是為了快速驗證訂餐需求;真實使用後,資料責任與整段訂餐流程的等待問題才逐漸浮現。這一篇不重走遷移故事,而是...

DAY 27

Day 27|當自由文字開始影響交易語意,它就不該只是一個 Note

儲值備註很適合記下收款說明。但「怎麼收的錢」如果只藏在文字裡,程式每次分類都要重新猜一次:寫現金、轉帳,或只寫某日收款,是否代表同一件事? 便當系統已把這個問...

DAY 28

Day 28|判斷系統成熟度,不能只看功能數

店家專區、代點餐、儲值方式、訂單統計都已經有自己的畫面。功能越來越多後,真正難的問題反而變簡單: 同一個業務事實,系統有沒有共同答案? 如果個人頁顯示一個...

DAY 29

Day 29|如果重新做一次,我會更早把哪些東西設計成「系統責任」?

回頭看這套便當系統,很容易得到一個過度簡單的答案:早知道就把身份、帳務、歷史、測試與部署全部先做好。 但這和系列前半段真正發生的事不符。很多需求只有在系統被使...