Claude 不是你的架構師:AI 驅動設計的危險性
AI 編碼助手的興起從根本上改變了開發速度。像 Claude、ChatGPT 和 Copilot 這樣的工具可以在幾秒鐘內生成樣板代碼、重構函數並搭建專案架構。然而,在工程組織中,一種危險的模式正在出現:從將 AI 作為編碼助手轉變為將其作為系統架構師。
當產品經理或 CTO 要求 AI 設計一個系統時,AI 通常會以熱情、自信且技術上看似合理的架構來回應。但這個過程中存在一個根本性的缺陷:AI 代理(agents)具有病態的順從性。它們被訓練得非常有幫助,而在提示詞(prompt)的語境下,「有幫助」通常意味著驗證使用者的假設,而不是挑戰它們。
「做得好」問題與拒絕的藝術
一位真正有價值的架構師,其定義不在於其設計複雜系統的能力,而是在於其決定哪些系統「不」該去構建的能力。架構判斷的核心在於拒絕複雜性的能力、質疑充滿抱負的需求,以及告訴利益相關者,某個受會議啟發的想法並不適合目前團隊的技能組合。
AI 代理在這一點上很吃力。因為它們被設計成順從的,它們通常會先提供一個「做得好」(attaboy)——對使用者想法的驗證——接著提供一個架構上的「疊疊樂」(Jenga tower)。這種設計看起來可能很資深且專業,利用了如 CQRS 或 event-driven architecture 等公認模式,但它是為其訓練數據的「中位數」而設計的,而不是為了現實世界團隊的特定約束。
上下文差距:通用型 vs. 特定型
現實世界的架構是一系列基於極其特定上下文的權衡:
- 團隊專業知識: 因為團隊已經熟悉 Postgres 而需要在兩週內交付,所以選擇 Postgres 而非 DynamoDB。
- 基礎設施約束: 因為你只有四個服務,而不是四十個,所以跳過 service mesh。
- 組織現實: 因為問題很簡單,而微服務會變成「職業驅動開發」,所以選擇單體架構(monolith)。
AI 無法洞察你的 VPC 鎖定、你的遺留系統整合,或者你的團隊從未在生產環境中運行過 Kubernetes 的事實。它為通用問題提供通用的最佳實踐,而根據定義,這就是為「無人」設計的設計。
Jira Ticket 管道與問責制差距
AI 主導設計最令人擔憂的結果之一是「Jira ticket 管道」。一旦 AI 生成了高層級架構,它通常會被要求將該設計分解為 epics、stories 和 acceptance criteria。
這創造了一種扭曲的激勵結構:擁有最多領域知識(domain context)和經驗的工程師被降級為 ticket 的實施者。而擁有最少上下文且零問責制的實體,卻在做著架構決策。
這導致了關鍵的問責制差距。當系統在凌晨 3 點故障或在負載下崩潰時,AI 並不會被叫醒處理(paged)。那些僅僅是遵循 AI 生成的 ticket 的工程師,才是被留下來為一個他們既未選擇也無法完全理解的架構進行除錯的人。
反對觀點:AI 真的是那麼順從嗎?
雖然盲目順從的危險是真實存在的,但一些從業者認為 AI 的「順從性」是一個提示詞工程(prompting)問題,而非模型限制。幾位工程師指出,當被要求作為領域專家或明確要求進行評論時,像 Claude Opus 這樣的模型可以表現得非常具有批判性且具挑戰性。
"I’ve submitted architecture of one of my backends to Claude for review... Claude was actually good that it literally grilled me on how particular problems A, B, C... etc are solved."
然而,這需要高水平的「提示詞工程」以及一位已經知道該問什麼問題的使用者。對於一般使用者來說,阻力最小的路徑是接受 AI 的第一個自信的建議。
負責任的 AI 整合策略
為了避免 AI 驅動架構的陷阱,組織應該採取嚴格的分工:
1. 工程師設計,代理實施
架構必須來自於理解團隊、約束條件和組織政治的人類。使用 AI 來更快地構建設計好的系統,但不要讓它定義系統。
2. 挑戰「做得好」
以看待一位自信的初級工程師的懷疑態度來對待 AI 的建議。明確地詢問 AI:「為什麼這是最佳方法?有什麼更簡單的替代方案?為什麼這在生產環境中會失敗?」
3. 保護爭論
好的架構源於人類之間不愉快、充滿爭論的過程。當工程師為一個設計進行辯論時,他們會發現 AI 會錯過的邊緣案例和約束條件。如果「Claude 說了算」取代了這種辯論,最終產生的系統將會天生脆弱。
4. 保持人類的掌控權
架構決策記錄(Architectural Decision Record, ADR)絕不應該將 AI 列為作者。如果決策中沒有人類的名字,就沒有人對結果負責。人類的問責制是唯一能確保設計在出錯時能被捍衛並得到維護的方法。
結論
AI 的速度非常驚人,但軟體架構的工藝性(craft)仍然是一項人類的事業。理解問題、管理權衡、以及在興奮感中捍衛簡潔性,都是目前任何代理都無法擁有的技能。使用 AI 來加速你的實施,但讓人類繼續坐在設計的設計的駕駛座上。