新的報告指出人工智慧正在侵蝕程式碼質量

導讀:GitClear 的最新研究基於對 2.11 億行程式碼的分析,結果表明人工智慧編碼助手正在透過增加重複和複製/貼上程式碼並減少重構來降低程式碼質量。
GitClear分析了其自身程式碼審查工具客戶以及開源專案的程式碼,查看了程式碼更改(例如新增、刪除、移動和更新)的指標。
研究人員發現,2024 年期間,重複行數為 5 行或以上的程式碼塊數量增加了 8 倍。重複程式碼可能執行正常,但通常是程式碼質量差的標誌,因為它會增加臃腫,表明缺乏清晰的結構,並且當同一程式碼在一個地方更新而在另一個地方不更新時,會增加出現缺陷的風險。
GitClear 補充說,與複製/貼上相比,從許多不同地方呼叫的函式更“經過實戰考驗”。
研究人員還指出,移動程式碼行數減少了 39.9%。程式碼移動是重構的證據,重構是在不改變功能的情況下提高程式碼質量。根據 GitClear 的說法,“將以前的工作整合為可重複使用的模組”的能力是人類程式設計師相對於人工智慧助手的一項重要優勢。2024 年是複製/貼上行數首次超過移動行數的一年。
GitClear 的研究表明,新的程式碼和複製的程式碼的數量在增加,但重構的數量卻在減少。
GitClear 表示,原因在於程式碼助手只需按下 Tab 鍵即可輕鬆插入新程式碼塊。人工智慧不太可能建議在程式碼的其他地方重複使用類似的函式,部分原因是上下文大小有限,即用於人工智慧建議的周圍程式碼量有限。
與 GitClear 的報告形成鮮明對比的是,谷歌的 2024 年 DORA“DevOps 現狀”報告聲稱,人工智慧的採用率提高使程式碼質量提高了 3.4%;但 DORA 報告還指出“交付穩定性估計降低了 7.2%”。
事實證明,這兩份報告並沒有表面上看起來那麼不同。在單個程式碼塊級別,人工智慧的幫助可能會提高程式碼質量;但 DORA 的研究人員表示,由於人工智慧允許開發人員更快地交付更多程式碼,因此很可能以後需要進行更多更改,他們的研究表明,更大的更改“速度更慢,更容易造成不穩定”。
人工智慧對編碼的影響可以以不同的方式呈現。支持者(和人工智慧供應商)可以指出生產力的提高,這是大多數開發人員都認同的,而懷疑者則可以指出人工智慧對程式碼維護的不利影響。
正如谷歌所做的那樣,說起來容易做起來難,組織應該制定使用人工智慧的指導方針來解決問題;但鼓勵不良做法的工具必然會增加不良做法,除非它們得到改進。
作者:萬能的大雄
相關閱讀:

相關文章