大多數人用 AI 寫程式像 F1 賽車——速度很快,但跑得好不好全看車手。大型專案需要的是高鐵:靠軌道,不靠車手。

目前主流的 AI Coding 工作流大致如下:
這個流程在小型專案或獨立功能上運作得很好。但放到 ERP 級別的大型專案,問題就浮現了:
根本原因不是 AI 不夠聰明,而是 AI 可選的寫法太多——不是寫錯,而是合法的寫法太多種。我們給了它一片空白,它能寫出一百種正確但彼此不相容的答案。
| F1 賽車模型(現況) | 高鐵模型(目標) |
|---|---|
| 結果取決於車手(工程師)技術 | 結果取決於軌道(框架)規範 |
| AI 自由選擇實作方式 | AI 只能填空,不能選路 |
| 每個功能都長得不一樣 | 所有功能共享骨架 |
| 靠測試事後補救 | 框架本身就是 constraint |
| 維護人員需讀懂 AI 的意圖 | 維護人員只需懂框架 |
重點在於:不要試圖用更精準的 Prompt 控制 AI,而是先建一條 AI 只能在上面跑的鐵軌。
這條鐵軌,就是開發框架。
Feature Layer ← 工程師 / PM 用 AI 填空,只寫業務邏輯
─────────────────
Framework Layer ← 架構師建置,Transaction / Auth / Audit / Routing
─────────────────
Infrastructure Layer ← DB / Queue / Cache / API GW
↑ 越往下越需要高品質,越往上越需要簡單
架構師負責建鐵軌,其他開發參與者在上面開列車。
框架不是「建議大家這樣寫」,而是「其他寫法根本跑不起來」。
框架對外只暴露必要的抽象介面,隱藏所有底層實作細節。開發者無法繞過框架直接操作資料庫、無法跳過驗證層、無法忽略權限檢查——不是因為有人盯著,而是因為框架根本沒有提供那條路。
AI 的任務因此從「自由發揮」變成「在框架定義的邊界內填入業務邏輯」。AI 可選的寫法從整個程式語言,縮小到業務邏輯本身。
框架的約束力必須是機器強制的,不能依賴 Code Review 的人工自律。
透過靜態分析工具,可以在編譯期或 CI 階段自動檢查:跨模組是否透過正確的通道溝通、業務邏輯是否混入了不該有的基礎設施操作、單一功能的規模是否超出合理範圍。
AI 生成的程式碼如果違反框架規範,在 CI 就直接擋下來,不進入人工審核流程。
框架建好之後,才有可能實現真正的 AI 開發閉環:
結構化需求(PM 填寫 YAML / 表單)
│
▼
AI Orchestrator
識別 Pattern → 生成骨架 → 填入業務邏輯 → 測試 → 自動修正重試
│
▼
Human Review
人只審核業務邏輯,架構與安全性由框架保證
1. Pattern 可識別性
框架需要明確定義功能 Pattern 清單,AI 才能判斷「這個需求套哪條鐵軌」:
Pattern Taxonomy(以 ERP 為例)
├── SimpleCrud → 基本主檔維護(供應商、客戶)
├── ApprovalFlow → 需審核的單據(採購單、請假)
├── Calculation → 批次運算(薪資、成本分攤)
├── Integration → 對接外部系統(EDI、銀行)
├── Report → 查詢報表(唯讀)
└── Composite → 以上組合(需人介入拆解)
2. 需求結構化
PM 的自然語言無法直接餵給閉環。需求必須先結構化——明確定義功能名稱、對應的 Pattern、欄位定義、審核規則、業務規則。這個格式比自然語言精確,比程式碼容易讓非工程師填寫,是閉環的起點。
3. 可量測的閉環成功率
閉環不是 100% 全自動,而是有明確的人工介入觸發條件:
| 狀態 | 條件 |
|---|---|
| 閉環成功(全自動) | Pattern 識別信心度達門檻、Build + Test 全過、無跨模組新依賴 |
| 需人介入(半自動) | Pattern 為 Composite、需求涉及現有邏輯修改、Test coverage 不足 |
| 退回重新設計 | 需求隱含框架尚未支援的 Pattern → 這是框架演進的 signal |
導入框架驅動的 AI 開發後,開發流程會從:
PM → 需求文件 → 工程師 → 程式碼 → QA → 部署
轉變為:
PM → 結構化需求 → AI Pipeline → PR → 人工審核 → 部署
知識不再只存在工程師腦中,而是沉澱在框架和 Pattern 庫裡。人員異動的衝擊降低,新人學會框架就能上手,技術債也集中在框架層統一管理。
框架不是一次建完,而是漸進建置:
Phase 1 — 鐵軌鋪設(最重要)
├── Base classes / interfaces 定義
├── Scaffolding CLI(一個指令生成模組骨架)
└── Reference Implementation(給 AI 學習的 few-shot 範本)
Phase 2 — 邊界強制化
├── 靜態分析規則(編譯期檢查架構規範)
├── Architecture unit test
└── Code review checklist → 轉成自動化檢查
Phase 3 — AI Prompt 標準化
├── 每類 Pattern 各一套 system prompt template
├── Context injection(自動帶入相關 Entity 定義)
└── Output validation(產出的 code 跑 build + 靜態分析)
框架不是銀彈,選擇這條路也有代價:
這些風險不是說框架方法不可行,而是框架的設計品質直接決定了整套方法的成敗。
建議框架在開放使用前,先用三個差異很大的真實功能來驗證:
如果框架能優雅地容納這三種情境,才算真正完成。
框架設計本身的品質,決定了一切。
架構師的最終產出不是程式碼,而是一條讓整個組織可以持續高速運行的鐵軌。框架建得好,換誰來開都能準點到站。
這套做法不一定適合所有專案——如果你的專案規模不大、團隊人數固定、AI 使用方式已經有默契,靠 F1 模式也能跑得很好。但如果你面對的是持續擴張、人員流動頻繁的大型系統,或許值得認真考慮:先把鐵軌鋪好,再讓 AI 上路。
📘 HackMD 原文筆記:
👉 https://hackmd.io/@jeff377/ai-coding-railway-model
📢 歡迎轉載,請註明出處
📬 歡迎追蹤我的技術筆記與實戰經驗分享
Facebook | HackMD | GitHub | NuGet