先建構,後理解:AI 如何改變了我開發軟體的方式

Published: at 12:00 AM

在我職涯的大多數時間裡,我遵循著一條準則:先理解,再建構。閱讀文件、梳理架構、建立心智模型——然後才開始寫程式。跳過這個步驟,你往後就得為此付出代價:技術債、錯誤的抽象層,以及深夜除錯的煎熬。

這條準則正在改變。不是因為理解變得不重要,而是 AI 讓你能透過一條截然不同的路徑抵達理解。

舊有的順序:先研究,再建構

傳統的軟體開發從根本上是由下而上的。你先學習基礎知識,在選擇框架之前先評估各個選項,在撰寫 schema 之前先設計資料模型。你必須在動手之前就有相當完整的全局觀,因為犯錯的代價——在錯誤的認知上建構——是很高的。

這樣做是有道理的。軟體是一門精密的工藝。如果你不了解工具在底層做了什麼,問題就會在最糟糕的地方浮現。先求理解不只是紀律,更是風險管理。

新的順序:先建構,再理解

有了 AI,現在有了另一種可能。你可以描述一個目標——有時甚至是模糊的描述——然後得到可以運行的軟體。AI 會選擇合理的技術棧、搭建結構、填充實作細節。你沒有先做研究,也沒有預先設計,你說出你想要什麼,一個真實的成果就回來了。

關鍵的轉變在這裡:你可以接著閱讀建構出的成果,並從中學習

藍圖已然存在。你可以追蹤程式碼的脈絡,請 AI 解釋它的選擇,理解為何它這樣組織結構。學習仍然存在——只是發生在建構之後,而非之前。而且因為你有一個真實可看的東西,一個已經能運作的成果,這樣的學習往往比單純閱讀文件更具體、更有意義。

舊的方式是:研究,然後建構

新的方式是:想像,然後建構,若想深入再去理解

這對開發者意味著什麼

這以我認為真正令人興奮的方式,改變了身為開發者的體驗。

你可以從目標出發,而不是從前置條件出發。 以前,如果你想在一個不熟悉的領域建構東西——比如資料管道、行動 App,或是 WebSocket 伺服器——你得先花時間學習該領域才能開始。現在你可以先開始。描述你要的結果,得到一個可運行的起點,在過程中逐步理解。

反饋迴路變得更緊密。 從「我有一個想法」到「我有東西可以跑了」之間的差距大幅縮短。這對動力、學習和迭代速度都至關重要。你可以用真實的成果來驗證假設,而不只是在心智模型中推演。

重建的成本很低。 如果第一次嘗試不太對——結構錯了、方法錯了——你描述差異並迭代,或者乾脆丟掉重來。代價是幾分鐘,而非幾天。這從根本上改變了開始嘗試的風險計算。你不需要在一開始就有完整的全局觀,因為調整的成本極低。

AI 給你藍圖,而藍圖是很好的老師。 閱讀 AI 生成的程式碼——質疑它、追問它為何做出某些選擇、在看到不對勁時提出異議——本身就是一種學習。這比閱讀文件更主動,因為你始終在看的是與你的問題直接相關的東西。

入門門檻大幅降低。 一個對自己想建構的東西有清晰想像的人,現在即使缺乏所需工具的深厚專業知識,也能開始建構。他們會在過程中培養那份專業知識。這對誰有資格建構軟體而言,是一個有意義的改變。

Anthropic 曾指出,他們自己的程式碼現在絕大多數都是 AI 生成的。這不再是邊緣行為——這是整個產業快速移動的方向。

這在 greenfield 專案中尤為明顯

「先建構,後學習」的模式在從零開始時效果最好。Greenfield 專案——新的 web 應用、新的 API、新的工具——正是 AI 大放異彩的領域。你不需要對抗既有的決策或累積的歷史包袱,可以讓 AI 提出方案,加以評估、精煉,然後快速推進。

Brownfield 程式碼庫則更為困難。既有系統有其限制、慣例和背景脈絡,這些並不在 AI 的訓練資料之中。這個方法仍然有幫助——AI 在既有程式碼庫中也是很有價值的助手——但純粹「先建構,後理解」的模式在從頭開始時效果最佳。

同樣地,高度專業化的領域需要更多前置理解。如果你的專案涉及專有協議或前沿研究領域,AI 可能沒有足夠的基礎為你提供可靠的輸出。了解你自己的情境。

學習並未消失——只是重新排序了

我想說清楚一件事:這不是在跳過理解,而是關於理解發生的時機。

好奇心依然重要。深入探索依然重要。舊的方式是先廣泛涉獵再深入鑽研。新的方式是先建構,然後針對你實際擁有的東西深入理解——這往往更有效率,因為你學習的是當下、在這個脈絡中真正相關的事物。

善用 AI 工具而蓬勃發展的開發者,不是那些不再在乎事物如何運作的人,而是那些批判性地審視 AI 輸出、理解建構了什麼以及為何這樣建構、並能在「描述目標」和「理解實作」之間流暢切換的人。

AI 不會讓理解變得過時。它讓理解成為你透過建構來贏得的東西,而不是你在開始之前必須繳納的入場費。

我現在做的不同之處

對於新專案,我更多地從想像出發,而不是研究。我描述我想建構的東西,讓 AI 提出結構,然後用我審視同事設計時同樣的批判眼光來評估這個提案。我可能會照單全收,也可能對特定選擇提出異議。

研究階段並未消失——它變得更有針對性了。我不再在建構前廣泛閱讀,而是針對性地回應已建構出的東西去閱讀。我理解的是在這個專案中重要的事,而不是一切抽象上可能重要的事。

而當我對 AI 輸出中的某個東西感到好奇時,我就直接問。AI 既是建構者,也是老師。這種結合是全新的,也是強大的。


從「先研究,再建構」到「先建構,後學習」的轉變,是我見過的在軟體開發日常感受上最有意義的改變之一。這並不會讓工程判斷力變得不重要——如果說有什麼不同,評估建構出的成果的能力,現在比以往任何時候都更重要。但它移除了過去將「有一個想法」與「有一個真實可用的東西」區隔開來的那道高昂的前置門檻。

這對開發者是好事。對建構出來的軟體也是好事。