新手的做法 vs 正確的做法

絕大多數新手拿到 AI 工具,第一件事就是打一段話:「幫我做一個 XXX。」然後 AI 噴出 50 個檔案,你看不懂、改不動,最後砍掉重練。

新手的做法
你:「幫我做一個 CRM 系統。」

AI:(生成 50 個檔案、3 個資料表、
用了你沒聽過的框架、
加了你不需要的功能)

你:「等等,這不是我要的......」
你:「這個拿掉、那個改掉」
你:「為什麼改了 A 功能,B 壞了?」
你:「算了,砍掉重練。」

花了 3 小時 + 大量 Token = 什麼都沒得到
正確的做法
Step 1:Demo(10 分鐘)
Step 2:確認邊界(10 分鐘)
Step 3:規劃架構(20 分鐘)
Step 4:正式開始寫(省時省 Token)

花了 40 分鐘 + 少量 Token = 方向正確

接下來我們一步一步看,正確的流程到底怎麼做。

第一步:先做 Demo(10 分鐘)

任何專案的第一步,不是「開始做」,而是「先看個樣子」。

比喻:先看樣品屋,再討論格局

你要買房子,不會直接在設計圖上簽約。你會先去看樣品屋——走進去感受空間大小、看看動線、摸摸建材。看完之後你才有「感覺」:客廳太小、廚房要開放式、浴室要乾濕分離。

Demo 就是你的樣品屋。它不需要完美,甚至不需要能用。它只需要讓你「看到」一個大概的樣子,這樣你才能開始說出具體的意見。

怎麼跟 AI 要一個 Demo:

你:「我想做一個客戶管理系統。先不要做完整版,
幫我做一個最簡單的 Demo:

- 一個頁面就好
- 有一個客戶列表(假資料)
- 可以點進去看客戶詳情
- 用最簡單的方式做,不用資料庫,假資料寫在程式碼裡就好

目的是讓我看到畫面,確認方向對不對。」

10 分鐘後,你就有一個可以看、可以點的東西。這時候你才能真正開始思考:「這個跟我想的一不一樣?」

Demo 的關鍵
Demo 不是最終版本。它就是一個用來「確認方向」的拋棄式原型。不要在 Demo 上修修補補變成正式版——那條路是災難。看完 Demo、確認方向後,才開始正式做。

第二步:看著 Demo 確認邊界

有了 Demo,你現在可以做第二章講的「邊界確認」了。因為你有東西可以指著說:

這些需求在看到 Demo 之前,你可能根本想不到。因為人類是視覺動物——看到東西才能反應

比喻:看了樣品屋之後的對話

看樣品屋之前:「我想要一個舒服的家。」(模糊到不行)

看樣品屋之後:「客廳太小要加大、廚房要做開放式、主臥的窗戶方向不對,冬天會西曬、浴室要有浴缸不要淋浴間。」

看了之後你才知道自己要什麼、不要什麼。

把你看完 Demo 的所有想法整理成一份清單,分成「要加的」和「不要的」。這份清單就是你的邊界文件

第三步:規劃架構(最重要的一步)

確認了要做什麼、不做什麼之後,接下來不是直接開始寫程式,而是先把架構規劃好

比喻:蓋房子的地基

地基是房子最先做、也最不起眼的部分。但地基歪了,上面蓋得再漂亮都沒用——整棟樓都是歪的。

軟體的「地基」就是資料庫設計架構決策。這些東西一旦確定了,後面要改的成本非常高。

在這一步,你需要跟 AI 討論(不是直接叫它寫程式)的事情:

3-1. 資料庫欄位設計

資料庫就像你的檔案櫃。每一格抽屜放什麼、怎麼分類,一開始就要決定好。後面要改抽屜的格局,等於把所有文件搬出來重新分類。

你:「先不要寫程式。幫我規劃客戶資料表的欄位:

必要欄位:姓名、電話、Email、公司名稱
可選欄位:備註、標籤
系統欄位:建立時間、最後更新時間

問題:
1. 一個客戶可以有多個聯絡人嗎?(如果可以,要拆成兩個表)
2. 標籤是固定選項還是自由輸入?
3. 需要記錄誰建立的嗎?(多人使用的話需要)」

3-2. 計算邏輯放哪裡

如果你的系統有計算功能(例如:訂單總金額、庫存數量),你需要決定計算邏輯放在前端(使用者的瀏覽器)還是後端(伺服器)。

放前端 放後端
速度快、體驗好 資料準確、安全
但使用者可以「竄改」 但每次都要等網路
適合:顯示用途(即時預覽價格) 適合:金流相關(實際扣款金額)

3-3. 耦合預告:哪些東西會互相影響

耦合的意思是「A 和 B 綁在一起,動了 A 就會影響 B」。在規劃階段,你需要先知道哪些功能是「綁在一起」的,這樣做的時候才不會一改就壞。

比喻:衣櫃跟電線

你在房間靠牆放了一個大衣櫃,結果衣櫃後面剛好是電線的接線盒。現在要修電線,得先把 50 公斤的衣櫃搬開。

如果一開始就知道接線盒在這裡,衣櫃就不會放這個位置。

耦合預告就是先標出「接線盒在哪」,避免以後搬衣櫃的痛苦。

常見的耦合範例:

3-4. SSOT:單一真理來源在哪裡

SSOT(Single Source of Truth)翻譯成白話就是:同一筆資料只存在一個地方。

比喻:公司通訊錄

公司有一份通訊錄。如果每個部門都各自維護一份,A 部門改了電話,B 部門不知道,就會打到舊號碼。

正確做法:只有一份「正式通訊錄」放在公司系統上,所有部門都看這一份。誰改了,大家都看得到。

那份「正式通訊錄」就是 SSOT。在軟體裡,某筆資料應該只存在一個地方(通常是資料庫),其他地方需要用就去那裡查,不要各自存一份。

在規劃架構時問 AI:

你:「這個系統的 SSOT 在哪裡?
客戶資料的唯一來源是 Supabase 的 customers 表?
還是有些資料會另外存在 localStorage?
我想確認不會出現資料不同步的問題。」

第四步:正式開始寫

做完前三步,你現在有了:

  1. 一個看得到的 Demo(知道長什麼樣)
  2. 一份邊界清單(知道要什麼、不要什麼)
  3. 一份架構規劃(知道資料結構、技術選擇、耦合風險)

現在才是正式開始寫程式的時候。而且因為前面的功課做足了,你下指令的品質會好很多:

你:「根據我們剛才討論的架構,開始正式實作。

先做第一個功能:客戶列表頁
- 資料從 Supabase 的 customers 表讀取
- 欄位:姓名、公司、電話、最後聯絡日期
- 預設按最後聯絡日期排序(最近的在上面)
- 頂部有搜尋框,即時過濾(前端過濾)
- RWD,手機版用卡片式而不是表格
- 不要做分頁,先用無限滾動
- 不要做刪除功能

做完這個再做下一個,一次做一個功能。」
一次做一個功能
不要一口氣叫 AI 做完整個系統。一次做一個功能,確認沒問題再做下一個。這樣出問題才知道是哪裡出的,也比較好修。就像蓋房子,一層一層蓋,每層驗收完才蓋下一層。

為什麼不能跳過第二步和第三步

警告
如果你跳過第二步(確認邊界)和第三步(規劃架構)直接開始做,你會花更多 Token 來回修改。

因為你省掉的不是「時間」,而是「思考」。那些你沒想清楚的問題,不會消失——它們只會在你做到一半的時候爆出來,而且修起來的成本是事先想清楚的 5-10 倍。

改設計圖只要擦掉一條線重畫。改已經蓋好的牆,要拆、要補、要重新粉刷。

常見的「跳過就會後悔」的情境:

跳過了什麼 後果 修復成本
沒確認要不要多語言 做完才加 i18n,30 個檔案全部要改 是一開始就做的 10 倍
沒確認權限設計 做到一半才發現「管理員跟一般使用者看到的頁面不同」,整個路由要重寫 是一開始就規劃的 5 倍
沒設計好資料庫 做到第三個功能才發現表格結構不對,要 migrate 還可能丟資料 是一開始就設計好的 8 倍
沒確認手機版需求 整個 UI 做完才說要 RWD,每個元件都要調整 是一開始就考慮 RWD 的 3 倍

本章小結:蓋房子的完整流程

把整個流程用蓋房子來比喻:

Step 1 看樣品屋(Demo)
你走進建商的樣品屋,感受空間大小、看看格局、摸摸建材。這讓你從「我想要一個家」變成「我想要這種感覺的家」。

Step 2 跟建築師討論格局(確認邊界)
你指著樣品屋說:「客廳要再大一點、廚房要開放式、不要浴缸要淋浴間、這個儲藏室不需要。」你說出了「要什麼」和「不要什麼」。

Step 3 看設計圖(規劃架構)
建築師畫出設計圖、結構圖、水電配置圖。你確認地基怎麼打、管線怎麼走、承重牆在哪裡。這些一旦動工就很難改。

Step 4 動工(正式開始寫)
一切確認完畢,才開始打地基、灌漿、砌牆。一層一層蓋,每層驗收。

你不會跟建築師說「幫我蓋房子」就等交屋。跟 AI 做專案也一樣。

記住這個流程:Demo → 確認 → 規劃 → 執行。看起來多花了時間,但實際上省下的是來回修改的 Token、砍掉重練的時間、以及抓不到 bug 的挫折感。

給自己的提醒
下次你打開 Claude Code 想說「幫我做一個 XXX」的時候,先停三秒鐘,改成說:

「幫我做一個 XXX 的最簡單 Demo,先不用完整功能,讓我看看大概的樣子。」

光是這一句話的改變,就能省你好幾個小時。