自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

AI也造代碼屎山!研究發(fā)現(xiàn)GitHub Copilot代碼可維護(hù)性差,偏愛(ài)“無(wú)腦重寫(xiě)”而非重構(gòu)復(fù)用已有代碼

人工智能 新聞
AI編程工具并不鼓勵(lì)代碼復(fù)用、在已有代碼上進(jìn)行修改,而是更傾向于“無(wú)腦重寫(xiě)”。

AI幫忙寫(xiě)代碼程序員用了都說(shuō)好,但代碼質(zhì)量真的靠譜嗎?

結(jié)果或許令你大跌眼鏡。

一家名為GitClear的公司分析了近四年超過(guò)1.5億行代碼后發(fā)現(xiàn),隨著GitHub Copilot工具的加入,代碼流失率(即代碼寫(xiě)入后不久又被返工修改、刪除的情況)出現(xiàn)了顯著上升:

2023年為7.1%,而2020年時(shí)僅為3.3%,翻了一番。

圖片

與之相應(yīng)的,代碼復(fù)用率也出現(xiàn)了明顯下降。

言外之意,AI寫(xiě)的很多內(nèi)容其實(shí)不亞于“屎山”,根本不好隨著業(yè)務(wù)的變化作相應(yīng)更改。

看起來(lái),AI編程工具還遠(yuǎn)沒(méi)有宣傳中的那么好用?

Copilot更愛(ài)直接添加代碼而不鼓勵(lì)復(fù)用

GitClear收集的1.5億行代碼中,有2/3來(lái)自匿名私企,剩下的1/3則源自于谷歌、Meta和微軟的開(kāi)源項(xiàng)目。

它們?nèi)勘慌懦恕霸肼暋睌?shù)據(jù),比如在多個(gè)分支中提交的一模一樣的代碼、空行以及其他沒(méi)有意義的代碼行。

調(diào)查的主要對(duì)象是微軟的GitHub Copilot。

它于2021年6月推出測(cè)試版,按照CEO說(shuō)法,截至2023年第三季度,該工具已有超100萬(wàn)開(kāi)發(fā)者付費(fèi)訂閱,能夠幫助開(kāi)發(fā)者編寫(xiě)46%的代碼,并將編碼速度提高55%。

圖片

不過(guò)在此,GitClear不關(guān)心編碼速度,只關(guān)心質(zhì)量。

“AI編程工具更類(lèi)似于高級(jí)開(kāi)發(fā)人員,仔細(xì)又精細(xì)?還是更像短期承包商一樣,只在乎面前的任務(wù)完成與否?”

為此,他們統(tǒng)計(jì)了這1億行+代碼的新增、刪除、更新、移動(dòng)、復(fù)制/粘貼等情況,得出了這樣一個(gè)趨勢(shì)表格:

圖片

從中我們可以發(fā)現(xiàn):

Copilot添加代碼、復(fù)制/粘貼代碼的百分比比更新、刪除和移動(dòng)增加得更明顯。

其中我們還可以清晰地看到,移動(dòng)代碼的百分比從2020年的25%下降到了13.4%,這是所有數(shù)據(jù)中唯一一個(gè)反向特例。

更少的移動(dòng)意味著更少的重構(gòu)和復(fù)用,加上大幅增長(zhǎng)的添加、復(fù)制/粘貼代碼,這表明:

AI編程工具并不鼓勵(lì)代碼復(fù)用、在已有代碼上進(jìn)行修改,而是更傾向于“無(wú)腦重寫(xiě)”。

在此,GitClear也指出,過(guò)度新增代碼、復(fù)制/粘貼對(duì)代碼的長(zhǎng)期可維護(hù)性也相當(dāng)不利。

這其實(shí)在人類(lèi)程序員中也是老問(wèn)題,可能是程序員覺(jué)得解決當(dāng)下問(wèn)題比思考如何復(fù)用、整合現(xiàn)有代碼更快更容易,也可能是因?yàn)橥瑐€(gè)項(xiàng)目組中的開(kāi)發(fā)人員溝通不暢等。

遭殃的就變成后面的維護(hù)人員。

Copilot的代碼質(zhì)量下降也體現(xiàn)在代碼流失率(Churn)這個(gè)數(shù)據(jù)上。

在此,它的標(biāo)準(zhǔn)定義是代碼編寫(xiě)后不到兩周的時(shí)間內(nèi)修改更新的百分比。

表格顯示,2020年的流失率為3.3%(那會(huì)還沒(méi)有用上Copilot),2023年增長(zhǎng)到5.5%。

GitClear預(yù)計(jì),2024年將直接相比2020年翻一番之多,達(dá)到7.1%。

這說(shuō)明AI的加速,并沒(méi)有帶來(lái)足夠高質(zhì)量的代碼。

除了以上結(jié)論,GitClear還發(fā)現(xiàn),Copilot的代碼建議算法還被設(shè)計(jì)為總是提出最有可能被用戶(hù)接受的建議——

這選擇乍一聽(tīng)沒(méi)啥毛病,但其實(shí)會(huì)忽略代碼簡(jiǎn)潔易讀的重要性。

總的來(lái)說(shuō),這項(xiàng)結(jié)果足以讓那些擔(dān)心AI編程工具會(huì)取代人類(lèi)程序員的人暫時(shí)把心放肚子里。

最近也有不少其他研究佐證了GitClear的發(fā)現(xiàn)。

比如來(lái)自CodeScene的一篇報(bào)告就表示:

在編碼任務(wù)中,AI遠(yuǎn)無(wú)法取代人類(lèi);今天的AI太容易出錯(cuò),且遠(yuǎn)未達(dá)到能夠安全修改已有代碼的程度。

圖片

網(wǎng)友體驗(yàn)大差不差

實(shí)實(shí)在在使用過(guò)Copilot的人怎么說(shuō)?

一位網(wǎng)友表示:

我用了倆個(gè)月后取消了會(huì)員,因?yàn)榛颂嗑θz查AI給出的代碼以及修復(fù)bug。

在TA看來(lái),現(xiàn)階段還是自己編寫(xiě)內(nèi)容要省力得多,因?yàn)樽约褐雷约合胍獙?xiě)什么,修復(fù)自己的bug總是比修復(fù)機(jī)器人的更容易。

圖片

有人使用的是ChatGPT而非Copilot,也對(duì)TA的話(huà)表示了贊同:

我對(duì)AI的能力感到驚訝,但還是不會(huì)稱(chēng)其為“好代碼”。

圖片

當(dāng)然,Copilot在大家眼里也并非一無(wú)是處。

一位從事web開(kāi)發(fā)20多年的程序員就表示:

用它編寫(xiě)重要的SQL或TypeScript代碼時(shí),總是失?。坏珜?duì)于編寫(xiě)測(cè)試、請(qǐng)求處理、React樣式等等來(lái)說(shuō),它還是可以幫我節(jié)省大量時(shí)間的。

圖片

你的Copilot(或者其他AI編碼工具)體驗(yàn)如何?你同意GitClear的發(fā)現(xiàn)嗎?

責(zé)任編輯:張燕妮 來(lái)源: 量子位
相關(guān)推薦

2024-02-21 14:36:39

安全漏洞人工智能

2023-10-16 09:30:06

Java代碼

2024-10-30 08:08:45

2021-07-05 10:00:17

GitHub代碼AI

2024-01-19 16:43:01

2024-04-07 10:13:57

C++代碼if-else

2025-02-13 00:28:26

2023-10-17 09:19:34

開(kāi)發(fā)Java

2018-08-03 09:00:00

編程語(yǔ)言Python外部庫(kù)

2023-09-21 10:01:10

GitHubAI 代碼助手

2022-04-01 15:16:40

GitHub程序員人工智能

2024-04-18 08:39:57

依賴(lài)注入控制反轉(zhuǎn)WPF

2023-09-20 23:03:40

C++函數(shù)

2012-07-27 10:30:12

重構(gòu)

2020-04-24 10:44:45

Scala代碼開(kāi)發(fā)

2024-04-02 11:38:14

2023-12-21 16:18:38

代碼AI人工智能

2025-04-10 08:10:00

Web 框架FastAPIPython

2020-04-28 16:12:50

前端JavaScript代碼

2025-03-26 06:48:46

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)