AI 寫的代碼,你敢上線嗎?

最近幾個月,我開始習慣用 AI 寫代碼

說實話,一開始真的很爽。

一個功能,描述一下,AI 很快就給你一版能跑的:

  • 接口寫好了
  • 數(shù)據(jù)結構補齊了
  • 連異常處理都幫你想好了

有時候甚至連你沒想到的細節(jié),它都提前補上。

那一刻你會有一種感覺:

寫代碼這件事,好像突然變得不值錢了。

但用著用著,我慢慢開始感覺不對勁。

不是寫代碼變慢了,而是,項目后面越來越痛苦。

-****01-

**開發(fā)確實更快了 **

以前一個需求,大致節(jié)奏是這樣的:

<pre data-start="378" data-end="417" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

需求梳理 ↓ 開發(fā)實現(xiàn) ↓ 聯(lián)調(diào)測試 ↓ 修 bug ↓ 上線

</pre>

雖然慢,但整體是 穩(wěn)步推進。

現(xiàn)在的節(jié)奏變成了:

<pre data-start="450" data-end="493" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

想個大概 ↓ AI 一頓生成 ↓ 頁面已經(jīng)跑起來 ↓ 然后開始懷疑人生

</pre>

你會逐漸發(fā)現(xiàn):

  • 有些邊界你根本沒想過
  • 有些邏輯 看起來對,其實不對
  • 改一個地方,另外兩個地方開始出問題

最痛苦的一點是:

你不是在修 bug,你是在重新理解這個系統(tǒng)。

而這個系統(tǒng),

一開始其實不是你完整設計的。

AI 最大的問題不是寫錯,而是“看起來沒錯”

這點我踩過很多次坑。

AI 寫出來的代碼,很少是明顯錯誤的。

大多數(shù)情況是:

  • 能跑
  • 邏輯順
  • 結構甚至還挺優(yōu)雅

但問題在于:

AI 默認你的需求是清晰的。

可現(xiàn)實是:

很多需求其實是模糊的。

比如產(chǎn)品一句話:

“這個功能大概這樣那樣就行?!?/p>

而你腦子里其實也只有一個模糊輪廓。

于是 AI 做了一件非常危險的事:

把一個模糊的想法,變成一個看起來合理的實現(xiàn)。

然后你會產(chǎn)生一種錯覺:

“好像差不多了?!?/p>

但其實:

差得遠。

[圖片上傳失敗...(image-2ae7f1-1774864875622)]

-****02-

**最扎心的一點 **

你開始不完全理解代碼

以前代碼是自己一行一行寫的。

你心里其實是有數(shù)的:

  • 為什么這么設計
  • 邊界在哪里
  • 哪些地方容易出問題

但現(xiàn)在很多時候是:

<pre data-start="1025" data-end="1063" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

AI 給一大段代碼 ↓ 你大概掃一眼 ↓ 能跑 ↓ 合進項目

</pre>

短期看效率很高。

但只要后面改動一點,你就會發(fā)現(xiàn):

你對這段代碼的掌控力,其實是弱的。

這種感覺很像什么?

接手別人寫的老項目。

只不過這個“別人”,是 AI。

測試突然變成“救命工具”

以前我對測試的理解是:

保證質(zhì)量。

但現(xiàn)在越來越覺得:

測試其實是在幫你補你沒想清楚的東西。

因為現(xiàn)在很多項目的問題是:

  • 需求沒完全想清楚
  • AI 不會主動追問需求
  • 開發(fā)階段直接就生成完了

那最后誰來兜底?

只能是測試。

但問題又來了:

測試拿到的其實是一個,

邊界不清晰的系統(tǒng)。

于是就會出現(xiàn):

  • 測不全
  • 測到一半發(fā)現(xiàn)邏輯本身就有問題
  • 來回反復修改

[圖片上傳失敗...(image-e1e7bd-1774864875622)]

-****03-

AI Agent 更夸張

如果只是普通業(yè)務代碼,其實還能控制。

但最近在做 AI Agent 產(chǎn)品,感受更明顯。

你會發(fā)現(xiàn):

  • 同樣輸入,有時候結果不同
  • prompt 改一點,行為就變了
  • 工具鏈一復雜,系統(tǒng)開始不可控

傳統(tǒng)測試邏輯是這樣的:

<pre data-start="1567" data-end="1586" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

輸入 A → 輸出 B

</pre>

但在 Agent 里變成:

<pre data-start="1603" data-end="1625" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

輸入 A → 大概率輸出 B

</pre>

甚至偶爾會:

<pre data-start="1635" data-end="1654" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

輸入 A → 輸出 C

</pre>

這時候問題就來了:

你怎么寫測試用例?

傳統(tǒng)軟件開發(fā),其實一直有一套 隱形流程

  • 產(chǎn)品收斂需求
  • 開發(fā)做技術取舍
  • 測試卡業(yè)務邊界

這些事情不一定寫在文檔里,但一直存在。

但現(xiàn)在很多時候變成:

<pre data-start="1807" data-end="1823" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

一個人 + AI

</pre>

問題就在這里:

AI 不會幫你定義邊界。

它只會順著你寫下去。

如果你自己沒有提前想清楚,最后就會變成:

<pre data-start="1886" data-end="1903" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important;">

前面飛快 后面返工

</pre>

而 Leader 還會問:

“不是已經(jīng)差不多了嗎?”

你卻根本沒法給出準確時間。

因為系統(tǒng)的 不確定性太大了。

[圖片上傳失敗...(image-e7bda9-1774864875620)]

-****04-****有點反直覺的結論

很多人覺得 AI 會讓開發(fā)更輕松。

但我現(xiàn)在的真實感受是:

輕松的是寫代碼,累的是兜結果。

而且這個“累”是 后移的

<pre data-start="2064" data-end="2097" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0); margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important; overflow-wrap: break-word !important; color: rgba(255, 255, 255, 0.55); font-size: 17px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: 0.578px; orphans: 2; text-align: justify; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(25, 25, 25); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;">

開發(fā)階段:很爽 測試階段:開始崩 驗收階段:徹底崩

</pre>

就像是:

你把復雜度借到了后面。

我并不覺得 AI 是壞事。

相反,它確實在大幅提升效率。

但有一點越來越明確:

AI 只是讓“寫代碼”變簡單了。

它并沒有讓:

  • 做系統(tǒng)
  • 做架構
  • 做產(chǎn)品

變簡單。

甚至某種程度上:

代碼越容易生成,系統(tǒng)越容易失控。

所以現(xiàn)在我越來越認同一個判斷:

AI Coding 解放的是實現(xiàn)力,但放大的是系統(tǒng)風險。

如果你不想項目最后變成反復返工,有些事情其實繞不過去:

  • 需求必須有人收斂
  • 邊界必須有人定義
  • 測試必須有人兜底

這些事情,目前 AI 還做不了。

所以我暫時不太相信:

“一個人 + AI 就能穩(wěn)定做出一條產(chǎn)品線”。

AI 帶來的,本質(zhì)還是:

提效,而不是替代。

真正聰明的用法也許是:

用 AI 提高人效,然后去做更多新的產(chǎn)品線。

而不是試圖用 AI 替代整個團隊。

如果你最近也在用 AI 寫代碼,有類似的感受,歡迎聊聊。

我也還在摸索:

怎么在 AI 時代,做出更穩(wěn)定的系統(tǒng)。

?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容