如果有任何問題或建議,歡迎隨時聯繫我:
「我不會寫程式,但我做了一個網站。」
這句話在幾年前是吹牛,現在是事實。你描述你要什麼,AI 給你一個能跑、能看、能用的網站。這件事我完全支持——把「做東西」的門檻降下來,是這個時代最好的事情之一。
但今天要講一件比較掃興的事:門檻沒有消失,它只是搬家了。
它從「你做不出來」搬到了「你做出來了,但你不知道自己漏掉了什麼」。
而這兩種卡關有一個要命的差別:第一種會擋住你,第二種會放你過去。
| 天數 | 主題 | 描述 |
|---|---|---|
| Day 1 | Claude 模型怎麼選?2026 最新四階模型完整比較 | Fable 5 / Opus 5 / Sonnet 5 / Haiku 4.5 的定位、規格與適用場景 |
| Day 2 | Claude 的計價邏輯:搞懂 input / output 為什麼差 5 倍 | 不背數字,理解計價結構,建立可長期沿用的成本直覺 |
| Day 3 | 不知道用哪個模型?官方建議「從 Opus 5 開始」背後的思維 | 為什麼預設起手不是最便宜、也不是最強的那個 |
| Day 4 | Claude Haiku 4.5 適合做什麼?便宜模型的正確用法 | 便宜模型不是次等品,是專用工具 |
| Day 5 | Claude context window 是什麼?1M token 到底能塞多少東西 | 用實際檔案量換算,破除「塞越多越好」的迷思 |
| Day 6 | Claude 模型選擇決策表:一張圖判斷你該用哪一個 | 把前五天濃縮成一張可以貼在螢幕旁的決策流程 |
| Day 7 | Token 是什麼?為什麼你的 Claude 帳單比想像中貴 | 從 tokenizer 原理理解中文為什麼特別燒錢 |
| Day 8 | Claude 省 token 的 5 個實用技巧(一般使用者也適用) | 不寫程式也能立刻套用的五個習慣 |
| Day 9 | Prompt Caching 是什麼?讓重複內容只算 10% 費用 | 快取寫入與命中的計價邏輯,以及什麼時候會虧 |
| Day 10 | Claude Batch API 教學:非即時任務直接省一半費用 | 用時間換金錢,非同步任務的正確打開方式 |
| Day 11 | 新世代 tokenizer:同樣的中文為什麼變貴了 | Claude 4.7 世代換了 tokenizer,這對中文使用者的實際影響 |
| Day 12 | 對話越長越燒錢?Claude 長對話的成本陷阱與解法 | 每一輪都重算全部歷史——以及三種切斷成本累積的做法 |
| Day 13 | Claude 用量怎麼監控?成本失控前的預警機制 | 從 usage 欄位到 Console 儀表板,把帳單變成可觀測系統 |
| Day 14 | Claude effort 參數是什麼?五個檔位該怎麼設 | low / medium / high / xhigh / max 的取捨與實測建議 |
| Day 15 | Adaptive Thinking 是什麼?為什麼你不用再寫「think step by step」 | 模型自己決定何時思考,舊 prompt 技巧為何失效 |
| Day 16 | Claude 回答變淺了?檢查這兩個隱藏設定 | 排查思路:先看 effort,再看 thinking 設定 |
| Day 17 | Claude Prompt 寫法教學:官方最佳實踐的骨架 | 一個可以套用在 90% 情境的 prompt 結構 |
| Day 18 | 用 XML 標籤讓 Claude 輸出更穩定(結構化輸出教學) | 為什麼 Claude 特別吃 XML,以及怎麼設計標籤 |
| Day 19 | System Prompt 怎麼寫?角色設定的正確姿勢 | system 與 user 的分工,以及「你是一位專家」為什麼沒用 |
| Day 20 | Claude 幻覺怎麼防?降低錯誤輸出的實用做法 | 引用來源、允許說不知道、把驗證寫進流程 |
| Day 21 | Claude Code 是什麼?安裝與第一次使用完整教學 | 從安裝到跑完第一個任務,含常見卡關點 |
| Day 22 | Claude Code 省 token 設定:別讓它讀完整個專案 | CLAUDE.md、忽略規則與 context 控制的實戰配置 |
| Day 23 | MCP 是什麼?把外部工具接進 Claude 的原理與實作 | Model Context Protocol 的設計哲學與一個可跑的範例 |
| Day 24 | 前端如何呼叫 Claude API?Messages 端點入門 | 第一支 API 請求,以及為什麼不該在瀏覽器直接呼叫 |
| Day 25 | Claude 串流輸出(Streaming):打造即時回應體驗 | SSE 事件流解析與前端逐字渲染 |
| Day 26 | Claude API 錯誤處理與重試:正式環境該注意什麼 | 429 / 529 的正確退避策略與冪等性設計 |
| Day 27 | 模型分流(Model Routing)是什麼?別再一支模型用到底 | 依任務難度動態選模型的判斷邏輯 |
| Day 28 | LLM 成本優化架構:小模型前置分流 + 大模型收尾 | 一套可落地的分層架構與失敗處理 |
| Day 29 | Vibecoding 做出網站之後:AI 不會主動告訴你的那些事 | 門檻降低的是「做出來」,不是「做對」——怎麼問出你不知道要問的問題 |
| Day 30 | Claude 使用總整理:模型、成本、設定一次看懂 | 全系列濃縮成一份可以收藏的速查表 |
整篇最重要的一句話,先講在前面:
AI 只回答你問的問題。你不知道要問什麼,那個問題對它來說就不存在。
你說「幫我做一個會員登入」,它給你一個會員登入。能註冊、能登入、能登出,畫面還挺好看。整件事花你十分鐘。
它做錯了嗎?沒有。它完全照你說的做了。
問題在於,「一個會員登入」這句話裡,藏著一整包你沒說出口的假設:這個系統會公開上線嗎?會有多少人用?存的是不是個資?有沒有人有動機來搞它?——這些問題的答案會徹底改變該怎麼做,但你一個字都沒提。
而 AI 不會追問。它預設你知道自己在要什麼。
這件事我們在 Day 6 講過一個縮小版:那個叫「出事就升級」的反模式——結果不好就換更貴的模型,換完好像真的變好了。當時的結論是,更強的模型之所以有效,常常是因為它會自己補完你沒寫清楚的意圖,問題被掩蓋而不是被解決。
Vibecoding 是同一件事在整個產品層級發生。差別只在於,這次被掩蓋的不是一段程式碼的品質,是你對整個系統該長什麼樣子的無知。
它補得了「常見做法」,補不了「你的情境特有的風險」。 而後者恰恰是你最需要幫忙、卻最不可能開口問的部分——因為你不知道它存在。
傳統學程式的路徑,其實藏著一個很少人感謝的好處:它會不斷打你臉。
語法寫錯,它報錯。邏輯有問題,測試不過。效能爛,頁面卡住轉圈圈。每一次失敗都在逼你補上一塊你原本沒有的知識。這個過程很痛,但它有一個關鍵特性——回饋是即時的,而且是強制的。
Vibecoding 的路徑沒有這個機制。網站跑起來了、按鈕會動、資料存得進去、朋友點進去說「哇你好強」。所有你看得到的訊號都在說「成功了」。
而安全問題最麻煩的特性正是:它平常完全不影響功能。
一個權限沒設好的資料庫,跟一個設好的資料庫,在你自己測試的時候表現一模一樣。你點進去看得到自己的資料,功能正常,畫面漂亮。你不會知道別人也看得到你的資料——因為你只會用「自己的帳號」去測。
這就是整件事最違反直覺的地方:
沒有收到錯誤訊息,不代表沒有錯。只代表這個錯不會用錯誤訊息的形式通知你。
它會用別的形式通知你。可能是某天早上的一封信,可能是一張你看不懂的帳單,可能是使用者在社群上的截圖。而那些形式的共同點是——等你收到的時候,已經來不及了。
以下不是攻擊教學,是上線前檢查清單。每一項的共同點都是:你沒說,所以它沒做——而不是它做錯了。
| 項目 | 為什麼 AI 不一定會幫你想到 | 怎麼自我檢查 |
|---|---|---|
| 金鑰放在前端 | 你要的是「能跑」,放前端確實能跑 | 打開瀏覽器開發者工具的 Network 分頁,看請求標頭裡有沒有你的金鑰(Day 24 完整講過) |
| 資料存取權限 | AI 不知道你的業務規則裡「誰該看到誰的資料」 | 用另一個帳號登入,試著讀取第一個帳號的資料,看擋不擋得住 |
| 沒有流量限制 | 你沒說這會公開上線,它就當作是你自己用 | 想像有人每秒打你的 API 一百次,會發生什麼事?(帳單的部分見 Day 13) |
| 錯誤訊息太詳細 | 開發時你要詳細錯誤才好除錯,沒人會提醒你上線要關掉 | 故意輸入錯誤的資料,看回傳的訊息有沒有吐出檔案路徑、資料表名稱、內部細節 |
| 第三方服務的預設值 | 很多服務預設開放,是為了讓你開發時不卡關 | 逐一檢查你接的每個服務,預設設定是「方便」還是「安全」 |
看出這張表的共同結構了嗎?
每一列的「為什麼」,都不是 AI 的錯。 它們全部是「在你沒有提供的資訊下,AI 做了一個合理但不適合正式上線的預設選擇」。
它預設你是在自己電腦上玩。而你預設它知道你要上線。兩個預設剛好錯開,中間那個縫隙就是洞。
前面講了一堆問題,這節是解法——而且是你今天就能用的。
核心動作只有一個:把提問方向反轉過來。
三個可以直接複製貼上的 prompt:
① 列舉盲點
這是我要上線的功能:[描述你的功能]
請列出我「應該檢查、但初學者常常不知道要檢查」的項目。
針對每一項說明三件事:為什麼危險、我怎麼確認自己有沒有中、以及怎麼修。
② 上線前的設定差異
這個專案目前是開發階段的設定。
如果要正式上線給真實使用者用,有哪些設定必須改?
特別列出那些「開發時方便、但上線後會變成風險」的設定。
③ 防禦性審查
請以資安審查的角度檢視這段程式碼,
指出如果它公開上線,哪些地方會成為風險。
只需要指出問題與修正方式,不需要示範攻擊手法。
這三個 prompt 有一個共同的設計:它們都在明確要求 AI 講出你「沒問到」的東西。
這正是 Day 20 那招的反向操作。Day 20 教的是「允許 Claude 說不知道」——給它空間承認不確定,能大幅降低幻覺。今天這裡是同一個機制的另一面:給它空間指出你的疏漏。
兩件事的原理完全一樣:你必須主動創造那個空間,否則它預設就只會回答你問的那一題。
平衡一下,免得這篇讀起來像在酸人。
我不是要你回去手刻。 快速把一個想法變成能點、能展示、能收到回饋的東西,這件事的價值是真的。過去要驗證一個點子得先花兩個月做出來,現在一個下午就能知道這個方向有沒有搞頭——這是實實在在的進步,不該被唱衰。
問題從來不在「用 AI 做」,在**「做完就以為結束了」**。
所以請把這兩件事分清楚:
| Prototype(原型) | Production(正式上線) | |
|---|---|---|
| 目的 | 驗證想法可不可行 | 服務真實使用者 |
| 可以接受 | 髒程式碼、只有一條路走得通、有洞 | 以上全部不行 |
| 有什麼在線上 | 你自己的時間 | 別人的資料、你的帳單、你的信譽 |
Vibecoding 在第一欄是神器。危險的是把第一欄的產出,直接搬去第二欄用。
而這個搬移通常不是一個決定,是一個沒有決定——你做完原型,覺得還不錯,就順手發出去了。中間沒有任何一個時刻,有人問你「等等,這東西準備好了嗎?」
那個問句得由你自己補上。
最後一件事,是關於怎麼聽 AI 說話。
AI 有一個容易讓人放下戒心的特性:它不會用「我不太確定」的語氣講話,除非你要求它這麼做。
所以你會拿到一段讀起來非常篤定、結構完整、術語準確的答案。而那份篤定,跟它對不對,沒有任何關係。
這跟人不一樣。人講到自己不確定的地方,會有訊號跑出來——語速變慢、加上「應該是」「我記得好像」、眼神飄一下。你聽得出來。AI 預設沒有這些訊號,全程一樣穩。
養成一個習慣:
「它講得很順」不能當作「它講得對」的證據。
越是重要的決定——會影響資料、影響金錢、影響使用者的那些——越要回頭查一手來源。這不是不信任 AI,是理解它的輸出特性:流暢度跟正確性,是兩個獨立的東西,只是它們給你的感覺很像。
今日挑戰:挑一個你用 AI 做出來、而且已經公開或準備公開的東西,把第四節那三個 prompt 各跑一次。
重點不是看它給出什麼答案,是數一件事:有幾項是你完全沒想過的? 那個數字就是你目前的盲區大小。我自己第一次跑的時候是四項,其中兩項我看完才知道那是問題。
反思:為什麼「做出來了」的成就感,這麼容易蓋過「這東西安全嗎」的警覺?
我的答案是——做出來是看得見的,安全是看不見的。 你會為看得見的成果感到驕傲,也只會為看得見的問題感到焦慮。而安全問題在爆掉之前,永遠是看不見的那一類。你有沒有其他「因為看不見,所以一直沒去處理」的事?
門檻降低是好事,但降低的是「做出來」的門檻,不是「做對」的門檻。這兩件事被很多人混為一談。
三個帶得走的重點:AI 只回答你問的問題——你不知道要問什麼,那個問題就不存在;沒有錯誤訊息不等於沒有錯,安全問題的特性正是它平常完全不影響功能,等它用別的形式通知你就來不及了;把提問方向反轉,從「幫我做 X」改成「這個 X 會怎麼壞」,主動要求它講出你沒問到的部分。
而 Vibecoding 本身沒有錯。錯的是把原型當成成品——那通常不是一個決定,是一個沒有人提出的問句。
本日關鍵字回顧
明天是最後一天。我們把 30 天的內容濃縮成一份可以收藏的速查表——模型、成本、設定,一次看懂。
Day 30,全系列總整理。