如何跟 AI 討論專案:先想清楚,再動手
English · 繁中 · Español · 日本語 · Português (BR)
作者: Danko Peng(@dankopeng)
更新: 2026 年 3 月
閱讀時間: 約 8 分鐘
大多數人用 AI 的方式是錯的
你遇到一個問題,立刻打開 Cursor,說:「幫我修這個 bug」或「幫我加這個功能」。
AI 生成了 code,你貼上去,跑了一下,好像可以。然後發現壞了另一個東西,再請 AI 修,再壞另一個……
半小時後,你在原地打轉,code 越來越亂,你也越來越沮喪。
問題不是 AI 不夠好,是你跳過了最重要的一步:先討論,再實作。
為什麼要先討論?
AI 非常擅長執行——你說做什麼,它就做什麼,而且做得很快。
但「快速執行一個錯誤的方向」比「慢慢想清楚再做」要浪費更多時間。
先討論的好處:
- 確認你真正的問題是什麼——你以為是 A 問題,討論之後發現其實是 B 問題,解決 B 比解決 A 快十倍
- 讓 AI 提出你沒想到的選項——AI 見過大量類似的情境,它知道有哪些做法,各自的取捨是什麼
- 避免做了之後又要拆掉——架構決定一旦做錯,改起來代價很高,討論的成本幾乎是零
核心原則:先說「先不要動手」
當你想討論一個問題,一開始就告訴 AI 你只是要討論,還不要它寫 code:
我想跟你討論一個問題,先不要動手寫 code,
等我們達成共識之後再實作。這句話很重要。AI 的預設行為是「給出解決方案」,它會傾向直接生成 code。你明確說「先不要動手」,它才會真的進入討論模式,給你分析、選項、建議,而不是直接一段 code 丟過來。
討論的三個階段
第一階段:說清楚你的問題
把問題說完整,不要只說症狀,要說背景:
我在做什麼:[你的專案是什麼、現在做到哪裡]
我遇到什麼問題:[具體描述,不只是「不 work」]
我已經試過什麼:[你做過哪些嘗試]
我想達到什麼:[你希望最終的結果是什麼]舉例——不夠完整的問題描述:
我的登入壞了,幫我修。舉例——完整的問題描述:
先不要動手。
我在做一個用 vibefast.app 建的訂閱制 app。
問題:用戶登入之後,重新整理頁面就被登出了。
已試過:確認 JWT token 有正確生成,cookie 也有設定。
目標:登入狀態要能在重新整理後保持。
你覺得可能是什麼原因?有哪些可能的解法?第二種描述,AI 能給出有意義的診斷,而不是猜一個方向亂改。
第二階段:讓 AI 提出選項
不要只問「怎麼做」,要問「有哪些做法,各自的取捨是什麼」:
# 不夠好的問法
「怎麼實作用戶通知功能?」
# 更好的問法
「我想加用戶通知功能,先不要動手。
有哪些實作方式?各自的複雜度和取捨是什麼?
我的 app 目前用 vibefast.app 架構(Remix + Cloudflare Workers + D1),
規模還小,只有我一個人維護。」AI 可能會給你三個選項:
- 簡單版:直接在 DB 存通知記錄,前端 polling
- 中間版:用 Cloudflare Queues 處理非同步通知
- 複雜版:WebSocket 即時推送
有了這個清單,你才能根據自己的情況做決定——你不需要最複雜的,你需要適合你現在階段的。
第三階段:確認共識再實作
討論完之後,在開始實作之前,先確認雙方對同一件事有共同的理解:
好,我決定用方案一(DB 存通知 + polling)。
在開始寫 code 之前,先確認一下我們的共識:
1. 新建一個 notifications 資料表,欄位有 id、user_id、message、is_read、created_at
2. 新增一個 GET /api/notifications 端點,回傳當前用戶未讀通知
3. 前端每 30 秒 polling 一次,有新通知就顯示紅點
4. 讀取通知後,呼叫 PATCH /api/notifications/:id 標記為已讀
這樣理解對嗎?有什麼我沒考慮到的地方?這一步看起來多餘,但非常有價值。你把計畫用自己的話說出來,AI 可以指出你遺漏的地方——比如「你忘了考慮用戶有大量通知時的分頁問題」——在實作之前發現,比實作之後再改容易得多。
確認沒問題之後,再說:
好,現在開始實作。先從資料庫 migration 開始。一個完整的討論範例
以下是一個真實情境的完整對話節錄,示範這個流程實際上長什麼樣子。
你:
先不要動手。
我在用 vibefast.app 做一個賣數位產品的 app。
問題:我想讓買家在購買後可以重複下載他們買的檔案,
但我不想讓沒付費的人能直接存取下載連結。
目前 R2 的檔案是公開的,任何人知道 URL 就能下載。
有什麼方法可以保護這些下載連結?AI:
好,我們先討論。這個問題有幾個常見的解法:
方案一:Signed URL(預簽名連結)
在用戶請求下載時,後端先驗證他有購買記錄,
然後生成一個有時效性的 R2 Signed URL(比如 15 分鐘有效),
把這個 URL 回傳給前端。前端直接用這個 URL 下載。
優點:簡單,R2 原生支援。缺點:URL 可以被分享(15 分鐘內有效)。
方案二:後端代理下載
下載請求先打到你的 Workers API,API 驗證身份後,
Workers 直接從 R2 讀取檔案流,回傳給用戶。
優點:完全控制,可以記錄下載次數、限制下載次數。
缺點:Workers 要傳輸整個檔案,會佔用 CPU 時間。
對你的情況,方案一通常夠用。你想限制下載次數嗎?你:
不需要限制次數,但我想記錄下載次數。
方案一 + 在 DB 記錄下載這樣可以嗎?AI:
可以,這個組合很合理。流程會是:
1. 用戶點下載 → 打 POST /api/downloads/:productId
2. API 驗證用戶已購買這個產品
3. 在 DB 的 download_logs 表記一筆(user_id、product_id、timestamp)
4. 生成 15 分鐘有效的 R2 Signed URL
5. 回傳 URL,前端跳轉下載
需要新建一個 download_logs 資料表。這樣理解對嗎?你:
對,這樣可以。現在開始實作,先從資料表開始。這個對話花了大概五分鐘,但讓你在動手之前就知道:
- 有哪些做法
- 你選了哪個,為什麼
- 實作範圍是什麼(一個資料表 + 一個 API 端點)
接下來的實作目標明確,AI 不會跑偏,你也不會做到一半發現方向錯了。
什麼時候該討論,什麼時候可以直接做?
不是每件事都需要先討論。
適合先討論:
- 架構決定(這個功能要放在前端還是後端?)
- 有多個做法的問題(有哪些方式可以實作 X?)
- 你不確定問題根源在哪裡(為什麼 Y 壞掉了?)
- 影響範圍比較大的修改
可以直接做:
- 簡單明確的 UI 調整(把這個按鈕顏色改成橙色)
- 你已經很清楚要怎麼做,只需要 AI 幫你寫
- 加一個新頁面,邏輯和現有頁面一樣
大原則:不確定的時候先討論,確定的時候直接做。
總結
先討論、再實作,是 Vibe Coding 最值得養成的習慣之一。
記住這個流程:
- 說「先不要動手」——讓 AI 進入討論模式
- 說清楚背景——你在做什麼、遇到什麼、試過什麼、想達到什麼
- 問選項和取捨——「有哪些做法,各自的取捨是什麼?」
- 確認共識——用自己的話說一遍計畫,讓 AI 確認或補充
- 再開始實作——目標清楚了,AI 才能做出你真正要的東西
Danko Peng
X · YouTube · Threads
👉 回到教程首頁
想直接上手完整的 Cloudflare 全棧模板?
👉 vibefast.app — 早鳥 $99,2026 年 8 月 1 日漲至 $199。