AI 輔助開發的核心原則:驗證成本決定適用範圍
在探索 AI 輔助開發的過程中,我逐漸發現一個關鍵限制:自然語言本身充滿歧義,在沒有經過反覆確認與互動的情況下,做出來的東西只會越來越偏離預期。
累積偏差的數學模型
有一個有趣的計算方法是這樣的:如果第一次描述只有 90% 的準確度,而每次描述要作的事情都「照感覺」描述 90%,那麼 10 次之後就是:
0.9^10 ≈ 0.3487 ≈ 34.87%
這意味著,如果缺乏明確的反饋循環,誤差會以指數級的速度放大。這不是理論上的擔憂,而是實際開發中經常遇到的問題。
核心原則:驗證成本決定適用範圍
經過實際的開發經驗,我總結出一個核心原則:
運用 AI 進行任何作業,都必須是你能用極小時間成本判斷 AI Output 是否正確的範圍,你才可以扎實地把大樓蓋好。
這個原則的關鍵在於:如果驗證成本高於手動完成的成本,那麼使用 AI 就不划算了。 驗證成本決定了 AI 的適用範圍。
低驗證成本的場景
1. 代碼生成
- 語法檢查:編譯器/TypeScript 立即報錯
- 簡單邏輯:一眼就能看出對錯
- 重構任務:測試套件自動驗證
2. 內容生成
- 格式檢查:Markdown/HTML 渲染即知
- 事實查證:可以快速 Google 驗證
- 結構化數據:JSON Schema 驗證
3. 文檔生成
- 格式正確性:肉眼可見
- 連結有效性:點擊測試
- 語法檢查:拼寫檢查工具
高驗證成本的場景(需謹慎)
- 複雜業務邏輯:需要深入理解領域知識
- 安全相關代碼:需要安全審查
- 性能優化:需要基準測試
- 架構設計:需要長期驗證
在 VibeBlog 專案中的實踐
讓我以 VibeBlog 專案為例,分析哪些部分最符合「低驗證成本」原則:
1. TypeScript 類型系統
export interface PostMeta {
slug: string;
title: string;
titleEn?: string;
date: string;
tags: string[];
tagsEn?: string[];
summary?: string;
summaryEn?: string;
heroImage?: string;
description?: string;
descriptionEn?: string;
}
- 驗證成本:幾乎為零(編譯器自動檢查)
- 錯誤立即暴露,無需手動測試
2. JSON 元數據結構
每篇文章的 metadata 都是結構化的 JSON:
- 驗證成本:極低(JSON 格式檢查 + 肉眼掃描)
- 結構化數據,容易發現缺失字段或格式錯誤
3. 視覺化輸出(Svelte 組件)
所有 UI 組件都可以直接在瀏覽器中查看:
- 驗證成本:低(打開瀏覽器即可看到)
- 符合實際操作驗證原則:用 chrome-devtools 打開瀏覽器實際操作看看
4. 標籤索引生成腳本
// 寫入 tags.json (中文)
const indexPathZh = path.join(INDEXES_DIR, 'tags.json');
fs.writeFileSync(indexPathZh, JSON.stringify(tagsIndexZh, null, 2), 'utf-8');
console.log(`✅ 成功生成標籤索引`);
console.log(` - 中文標籤數量: ${tagCountZh}`);
console.log(` - 英文標籤數量: ${tagCountEn}`);
console.log(` - 文章數量: ${totalPosts}`);
- 驗證成本:低(查看輸出 JSON + 控制台統計)
- 輸出是結構化數據,容易驗證
5. HTML 內容生成
Markdown 轉 HTML 的過程:
- 驗證成本:低(打開 HTML 文件或瀏覽器查看)
- 格式轉換結果可立即檢查
需要更高驗證成本的部分
當然,專案中也有一些需要更高驗證成本的部分:
- 內容邏輯正確性:文章內容是否準確(需要領域知識)
- 路由邏輯:URL 參數處理是否正確(需要測試多種情況)
- 語言切換邏輯:中英文切換是否完整(需要測試所有頁面)
策略建議
基於這個原則,我建議:
- 建立自動化驗證:測試、lint、類型檢查
- 視覺化輸出:用瀏覽器實際操作確認
- 小步迭代:每次只做可立即驗證的小改動
- 明確的驗證標準:定義「正確」的客觀標準
結論
AI 的價值在於放大你的判斷力,而不是替代它。 只有在你能快速驗證的範圍內,AI 才能成為可靠的工具。
這個原則不僅適用於代碼開發,也適用於任何使用 AI 輔助的工作。記住:驗證成本決定了 AI 的適用範圍。 只有在低驗證成本的範圍內,你才能扎實地完成工作,避免累積偏差帶來的問題。
這篇文章是基於實際開發經驗的總結,希望對正在探索 AI 輔助開發的開發者有所幫助。