當過度依賴 AI,付出的代價是什麼?

這兩個月,我彷彿經歷了一場深海救援。

接手了一個稍微複雜的專案救援任務,原本預期是常規的除錯與優化,但當我打開 Codebase 的那一刻,我意識到事情沒那麼簡單。前一位工程師留下的,不是單純的 Bug,而是一座由 GenAI 快速堆砌、卻缺乏地基的摩天大樓。

這段日子的可以用一句話總結:用 GenAI 寫 Code 很快樂,那種「Vibe Coding」的流暢感令人著迷;但若缺乏判斷力,這份快樂背後的代價,非常昂貴。

這代價不只是燒掉的預算,還有那逝去的半年開發時間。

速度的假象:拼湊感的來源

在前一位工程師的代碼中,我看到了大量的 GPT 痕跡。平心而論,這本身沒有問題。在這個時代,不使用 AI 輔助開發才是跟自己過不去。

問題在於「照單全收」。

我可以想像當時的開發場景:需求來了,丟給 AI,Code 出來了,貼上去,跑過了,收工。這種開發模式帶來的速度感是驚人的,前期的進度條跑得飛快。然而,當我深入修補時,發現整個架構充滿了嚴重的「拼湊感」。

AI 給出的建議通常是針對「當下這個函式」或「當下這個功能」的最佳解,但它往往缺乏對「整體系統邊界」與「長期維護性」的考量。當這些碎片化的「局部最佳解」被硬生生地拼在一起,卻沒有經過人類工程師的過濾與調整,整個系統就像是一個外表光鮮亮麗,但內部管線亂接、結構搖搖欲墜的樣品屋。

核心技能的缺失:實作順序與喊停的勇氣

我們常誤以為軟體開發就是「把功能寫出來」(Implementation),這也是 AI 最擅長的部分。但真正區分新手與資深工程師的,從來不是語法記憶,而是隱藏在代碼背後的決策過程:

  1. 實作順序的決策 (Sequence of Implementation):先做什麼?後做什麼?哪個模組應該先被抽象化?這決定了依賴關係是否健康。
  2. 適時喊停的決策 (Decision to Stop):知道何時該停下來重構,知道這條路走下去會是死胡同。

這是一種關於風險控制、需求管理與架構平衡的技術。這是一種依賴長期實戰經驗所訓練出來的「直覺」。

遺憾的是,目前的 AI 很難反向推敲出這些決策。它會盡力滿足你的 Prompt,即使你的要求會導致未來的架構崩壞,它也會順從地給出一段能跑的 Code。如果你沒有能力判斷「這段 Code 放這裡對不對」,那麼 AI 的順從,就是最甜蜜的毒藥。

工具越強,濾網就要越細

我自己現在也是重度 AI 使用者,手邊用的是最兇猛的 Opus 4.5 和 Sonnet 4.5。必須承認,它們能幫我完成 80% 的通用功能。

但剩下的那 20% 呢?

那 20% 往往是業主最富有創意的商業邏輯,是那些非標準化的、需要層層拆解的複雜需求。這時候,最困難的不是「如何實作」(How),而是「決策順序」(When & What)。

如果沒有紮實的基礎知識,你就無法形成有效的「濾網」

  • AI 給的這段 Code 是最佳解,還是僅僅能跑?
  • 這個 Pattern 雖然現在好用,三個月後會不會變成巨大的技術債?
  • 這裡的邏輯是否符合我們特定的商業規則?

當你無法分辨這些差異,你就很容易被 AI 帶進溝裡。

商業開發不能靠感覺

現在很流行一個詞叫「Vibe Coding」(靠感覺寫 Code),這聽起來很酷,我也承認這很適合用來做玩具、做 Side Project 或是進行技術研究。

但如果要交付的是商業產品,我們就不能只靠「感覺」,必須靠「專業」。

我這兩個月的收尾工作,說穿了,就是在幫這個專案補上遲來的「濾網」,把那些鬆散的 AI 建議,重新用邏輯與架構串聯起來。

未來的工程師,價值或許不再於你親手敲了多少行程式碼,而在於你是否具備足夠的鑑別力與判斷力。你是那個指揮 AI 艦隊的指揮官,還是被 AI 牽著鼻子走的乘客?

Ad Feature

這裡可以輸入標題、內文,也可以做粗體和斜體的變化,也可以插入圖片,或者是用 iframe 語法做任何操作也是可以的,如不需要可至精選功能 → 文末自訂廣告刪除。

分享此內容: