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」走向可驗證、可交接、可持續演進的軟體工程。

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

Day 1|我只是想訂便當,怎麼最後做成一套正式系統?

一開始,我真的只是想讓大家訂便當方便一點。 事情要從 2024 年說起。 當時公司固定向一家便當店「蔡老師」訂餐。 如果每天都靠人工詢問、訊息統計,再自己整理...

DAY 2

Day 2|不是先寫 Code:我怎麼把舊便當系統拆成可移轉的需求清單?

上一篇提到,這套便當系統不是從 GAS、React 或 Cloudflare 開始的。 在那些東西出現以前,公司裡就已經有一套真的有人在用的內部訂餐系統。 它...

DAY 3

Day 3|為什麼第一版手機版便當系統,我選了 GAS + Google Sheets?

Day 2 回頭整理了公司原本那套便當系統。 它不是完全不能用。 反而因為已經真的跑過一段時間,我更清楚哪些東西是必要的: 要能讓同事用手機快速下單 要知道...

DAY 4

Day 4|當 GAS + Sheets 真的開始被使用後,試算表就不再只是試算表

Day 3 提到,第一版手機版便當系統之所以選擇 GAS + Google Sheets,不是因為它是什麼完美架構。 而是因為當時我要解決的問題很實際: 手...

DAY 5

Day 5|一家店變成多家店後,原本固定的東西全變成資料

Day 4 談到,當便當系統真的開始被使用後,一筆訂單就不再只是一列資料。 它會影響店家要準備幾份、不同樓層怎麼分餐,甚至牽涉到使用者的餘額與信任。 但那時候...

DAY 6

Day 6|功能都正常,為什麼我還是決定離開 GAS?

Day 5 談到,當便當系統從一家店走向多家店,原本藏在環境裡的固定值開始一個一個變成正式的 Domain Data。 店家、菜單、價格、截止時間,都不能再假...

DAY 7

Day 7|一套便當系統,為什麼最後會碰到身份系統?

Day 6 談到,一整段 User Journey 裡反覆累積的等待,已經逼著系統重新評估 GAS + Sheets 的執行模型。 架構開始移動之後,另一個比...

DAY 8

Day 8|餘額一進來,系統就不再只是表單

Day 7 談的是身份。員編與 LINE 最後都必須收斂到同一個 canonical user。身份一旦開始穩定,另一個問題就變得更明顯:這個人現在到底還有多...

DAY 9

Day 9|菜單不是一張圖片,它是一段歷史

Day 8 處理的是餘額:當一個數字會持續被交易改變,就不能只保存最後結果。 菜單也有類似問題,但麻煩的地方不太一樣。 今天看到的「雞排飯 100 元」,下個...