AI 把開發速度拉滿之後,最危險的是「我已經做完了」的錯覺
AI 寫程式真的很快。房間能建、使用者能進、內容能發、票也能投。腦袋立刻宣布:
完成。
伺服器回答:
你剛剛只測了一個人。
真正要測的是:100 人同時操作會怎樣?資料已寫入,但成功回應在網路中消失怎麼辦?截止時間和最後一票撞在一起呢?付款通知來兩次呢?故障恢復後所有人一起重新連線呢?
一次小型多人 Web App 的程式碼審查最後擴充成 324 個測試項目。這不代表找到了 324 個 Bug。當時 324 項全部都是尚未執行的測試。
1. 只看 DDoS 不夠
Cloudflare 在所有方案上都有自動 DDoS 偵測與緩解,但官方仍建議搭配 rate limiting 等應用層防護,因為大型攻擊仍可能影響應用。[1]
對獨立開發者來說,第一個撞上限的甚至可能不是攻擊,而是正常使用者。
若客戶端每 3 秒輪詢一次:
| 同時裝置 | 每小時狀態請求 |
|---|---|
| 10 | 12,000 |
| 30 | 36,000 |
| 100 | 120,000 |
| 1,000 | 1,200,000 |
這不是實際容量預測。退避和快取可以降低,發文、圖片、收件匣、多分頁、排程工作又會增加。
截至 2026 年 10 月 5 日,Workers Free 列出每日 100,000 次請求;D1 Free 為每日讀取 500 萬列、寫入 10 萬列、單一資料庫 500MB、每次 Worker 呼叫 50 個查詢。[2][3] 單一 D1 資料庫也會逐一處理查詢,併發過高會排隊,最後可能出現 overloaded 錯誤。[3]
所以可怕的不只是「一百萬個攻擊者」。
100 個正常使用者同時玩得很開心,也可能就是壓力測試。
2. 為什麼變成 324 項
範圍最後涵蓋 16 類:入口與濫用、容量、併發與復原、排程、房間與權限、圖片、文字輸入、投票、截止時間、結果開放、公開房、長連線、裝置與重連、外部服務、付款、發布與監控。
不用同時全部做完。先抓會造成資料損壞、越權、流程卡住、額度耗盡、錯誤扣款的項目。
3. 上線前優先打的 23 個點
- 應被拒絕的請求是否仍進入昂貴的 DB 處理。
- 自己的用量統計是否真的覆蓋所有高成本路徑。
- 限流是否能跨重新啟動與多個執行位置維持。
- 「沒有變化」的輪詢是否仍大量讀 DB。
- 一個座位能否建立無限長連線。
- HTTP 與長連線是否套用同一套限制。
- 緊急停止後,已連線客戶端是否也停止。
- 排程延遲時,截止後操作是否會被誤收。
- 部分寫入失敗時,房間是否仍向前推進。
- 修復工作重跑時,統計是否重複加總。
- 遊戲尚未真正建立前,是否先消耗了開始次數。
- 寫入成功但回應消失後重試,是否產生兩筆回答。
- 全形半形、空白差異是否能繞過名稱唯一性。
- 最後一個位置是否能被兩人同時搶到。
- 排程是否可能累積到永遠追不上。
- 是否監控整個 DB 與索引,而不只是圖片。
- 遺失裝置後,別人是否能接管身分。
- 圖片格式、像素、metadata、定位資訊是否安全處理。
- 歷史越多,每次顯示是否越昂貴。
- 復原後同時重連是否造成第二次故障。
- 付款是否測過重複、延遲、失敗、取消、恢復。
- 是否把本機測試通過誤認成正式環境通過。
- DB 掛掉時,監控是否也一起失明。
4. Bug 最喜歡組合拳
高價值情境:
100 人同時投票 → 20 人重新整理 → 10 人斷線 → 部分寫入成功但成功回應遺失 → 重試。
接著看是否重複計票、過期票混入、畫面回退、同一操作跑兩次。
OWASP 也把併發 session、異常輸入與錯誤處理分開列為測試主題。[4]
5. 「寫入成功」和「使用者收到成功」不是同一件事
伺服器寫成功,網路回應卻沒了。使用者只看到失敗,所以再按一次。
若沒有 operation ID 或其他去重機制,就可能多一筆回答、多一個房間、多一票、多一則通知,甚至多扣一次錢。
重試必須被設計。
6. 壓力測試要逐級增加
在自己控制的測試環境中從 10 → 30 → 100 增加。
同樣 100 人也要換分布:同一房集中、多房分散、同時加入、同時最後投票、故障後同時重連、與排程重疊、中途模擬儲存失敗。
不要對沒有權限測試的系統送大量流量。先定預算與停止條件。
7. 沒掛掉不等於合格
可先設定像「95% 一般請求 1 秒內、99% 3 秒內、非預期 5xx 低於 0.1%」的性能目標。
但以下應是 0 件:
- 他人資料外洩;
- 越權;
- 重複計分;
- 已提交資料遺失;
- 重複扣款。
8. 測試設計 9 分,執行證據 0 分,很正常
324 項與 23 個優先風險做得好,代表設計成熟。
但還沒執行以前,證據就是 0。
這不是失敗,而是從「不知道要測什麼」進到「知道該去哪裡把它弄壞」。
9. 接著可能先爆的是 AI 的每週額度
如果一整天讓 AI 讀大型 repo、實作、修正、review、再實作,先到極限的可能不是伺服器,而是 AI 訂閱額度。
截至 2026 年 10 月 5 日,Claude Max 20x 網頁方案每月 200 美元。20x 指相對 Pro 的每個 session 容量。session 限制每 5 小時重置,但 Max 還有所有模型共用的每週限制。[5]
所以 20x 不是無限。
實際消耗依模型、context、工作內容而變,最可靠的是看 Settings > Usage。
10. 「Fable 很貴」看數字也說得通
Max 可使用 Fable 5 與 5.1,但 Fable 最多可使用每週額度的 50%,而且 Anthropic 說它比其他 Claude 模型更快消耗額度。[6]
按 token 計價:
| 模型 | 每 100 萬輸入 token | 每 100 萬輸出 token |
|---|---|---|
| Sonnet 5.5 | $2 | $10 |
| Opus 5.5 | $4 | $20 |
| Fable 5.1 | $10 | $50 |
Fable 5.1 的輸入與輸出單價都是 Opus 5.5 的 2.5 倍。雖然 Fable 5.1 降低了快取讀取成本,官方估計典型工作比 Fable 5 便宜約 25%,長時間 agent 工作最高可省約 45%,絕對價格仍高。[6][7][8]
API 價格不能直接換算成 Max 每週額度,但「重模型跑很久會很貴」這個方向沒有變。
11. 不要每顆螺絲都叫吊車
Sonnet 5.5:日常修正、已知 Bug、重複工作、範圍清楚的實作。
Opus 5.5:原因不明問題、大型設計、跨檔案審查、上線前關鍵判斷。
Fable 5.1:只有在最難工作上,能力提升值得更高成本與額度消耗時使用。
這不是模型排行榜,是每個任務的成本控制。
12. AI 不會消滅瓶頸,只會移動瓶頸
以前:想法 → 開發數週 → 測試。
現在:想法 → 快速實作 → 測試、營運、伺服器額度、AI 額度一起撲上來。
「一天做完 App」更精準的說法是:
「一天做到終於可以認真把它弄壞的階段。」
這才是真正的上線準備。
資料
參考資料(8筆)
- Cloudflare DDoS Protection developers.cloudflare.com
- Cloudflare Workers Limits / Pricing: / https://developers.cloudflare.com/workers/platform/pricing/ developers.cloudflare.com
- Cloudflare D1 Limits / Pricing: / https://developers.cloudflare.com/d1/platform/pricing/ developers.cloudflare.com
- OWASP WSTG wstg.owasp.org
- Anthropic Max plan support.claude.com
- Anthropic Fable models support.claude.com
- Claude Opus 5.5 anthropic.com
- Claude Sonnet 5.5 anthropic.com
