AI Sandwich——工作流整合的正確姿勢
一句話總結:Human Decision → AI Execution → Human Review。永遠不要反過來——讓 AI 做決策、人做執行。那樣你就只是 AI 的打字員。
結論先講:需求理解自己做、核心邏輯自己寫、Review 自己來。AI 處理中間那些機械性的工作:boilerplate、測試骨架、文檔初版。
日常開發中 AI 的正確定位
一個健康的 AI 輔助開發流程:
需求理解 [人] → 方案設計 [人+AI] → 核心邏輯 [人] → 樣板程式碼 [AI] → 測試 [AI+人] → 文檔 [AI+人] → Review [人]
需求理解 [人]: AI 不應該參與。需求涉及業務邏輯、stakeholder 的隱含期待、組織政治、歷史 context——這些都不是 AI 能處理的。你可以用 AI 整理需求文件的格式,但理解本身必須是你做的。
方案設計 [人 + AI]: AI 是 brainstorming 的夥伴。但給它 context:「我在設計 rate limiter,考慮 token bucket、sliding window、fixed window 三種方案,使用場景是 API gateway 每用戶限速,列出 trade-offs。」——不是「幫我設計一個 rate limiter」,後者你會得到一個不考慮你具體約束的通用方案。
核心邏輯 [人]: 你系統中最重要、最複雜的邏輯,自己寫。理由:這是你最需要深度理解的部分、出 bug 影響最大、AI 最容易在邊界條件犯錯、你需要在凌晨三點被叫起來時立刻看懂這段 code。
樣板程式碼 [AI]: CRUD endpoint、migration file、config boilerplate、DTO 定義——模式固定、AI 正確率高、review 成本低、手動寫價值低。
測試 [AI + 人]: AI 很擅長生成測試骨架和 happy path。但你需要人工補充邊界條件、錯誤路徑、併發場景、業務規則的特殊情況。
// AI 生成的測試(通常只有 happy path)
test('should create user', async () => {
const result = await createUser({ name: 'John', email: 'john@test.com' });
expect(result.name).toBe('John');
});
// 你需要手動補充的
test('should reject duplicate email', async () => { /* ... */ });
test('should handle concurrent creation with same email', async () => { /* ... */ });
test('should validate email format', async () => { /* ... */ });
test('should sanitize XSS in name field', async () => { /* ... */ });AI 生成了一個測試,你需要補四個。那個比例大概就是這樣——AI 給你 20%,你補 80%,但那 20% 的骨架幫你省了設定 test suite 的時間。
文檔 [AI + 人]: AI 根據 code 生成初版文檔。你確認準確性、補充「為什麼」的部分、加入使用範例和注意事項。AI 只能描述「是什麼」,不能解釋「為什麼」。
Review [人]: Code review 在 AI 時代不是變得不重要,是變得更重要。AI 的 code 可能通過所有表面檢查(語法正確、格式統一、測試通過)但在架構合理性或安全性上有問題。
The AI Sandwich
Human Decision → AI Execution → Human Review
(人做決策) (AI 執行) (人做審查)
- 你決定要做什麼、為什麼做、怎麼做
- AI 執行機械性的部分——寫 code、跑測試、生成文檔
- 你審查結果是否正確、是否符合預期
永遠不要反過來。讓 AI 做決策、人做執行?那你就是 AI 的打字員。
AI 失敗的真實案例
沒有領域知識就使用 AI 所造成的真實失敗:
| 情境 | 發生了什麼 | 根本原因 |
|---|---|---|
| 用 AI 寫 Terraform | security group 開了 0.0.0.0/0 inbound | 使用者不懂 networking |
| 用 AI 設計 DB schema | 所有資料塞一張表 | 不懂資料庫設計 |
| 用 AI 寫前端元件 | 沒有 keyboard navigation 和 ARIA | 不懂 accessibility |
| 用 AI 寫效能優化 | 在不需要的地方加 useMemo,反而更慢 | 不懂 React rendering |
| 用 AI 寫單元測試 | 只測 happy path | 不懂測試策略 |
每個案例的共同點:AI 產出了表面上合理的結果,但實際上是錯的或不完整的,而使用者缺乏判斷能力。
這篇的重點回顧
AI Sandwich:人做決策、AI 執行、人做審查。需求理解和核心邏輯自己來,boilerplate 和測試骨架讓 AI 生成。Review 在 AI 時代更重要不是更不重要。沒有領域知識用 AI 等於加速製造問題。
系列文章:
- AI 工具選型(一):AI 是力量放大器
- AI 工具選型(二):Code Agent 與工具選型
- 你在這裡 → AI 工具選型(三):工作流整合實務
- AI 工具選型(四):Prompt 與 Instructions 設計
- AI 工具選型(五):領域知識、團隊策略與風險
「AI 是副駕駛不是正駕駛——你可以讓它幫你看路,但方向盤必須握在你手上。」