作者 | Eran Yahav
編譯 | 言征
出品 | 51CTO技術(shù)棧(微信號(hào):blog51cto)
時(shí)至今日,AI編碼工具已經(jīng)進(jìn)化到足夠強(qiáng)大了嗎?這未必好回答,但從2023 年 Stack Overflow 上的調(diào)查數(shù)據(jù)來(lái)看,44% 的專業(yè)開(kāi)發(fā)人員已經(jīng)在其軟件開(kāi)發(fā)過(guò)程中使用AI工具,另?yè)?jù)一些報(bào)告稱,到 2025 年底,這一數(shù)字將增加一倍以上。
這個(gè)采用速度(假如采用占比達(dá)到88%),對(duì)于軟件開(kāi)發(fā)領(lǐng)域而言,已經(jīng)足夠說(shuō)明開(kāi)發(fā)者對(duì)于AI工具的喜愛(ài)。
到現(xiàn)在如果才說(shuō)“人工智能將改變一切”已經(jīng)過(guò)時(shí)了。
開(kāi)發(fā)者對(duì)于新技術(shù)而言,往往都是第一批早期采用者,是當(dāng)之無(wú)愧的極客先鋒。
他們看到AI時(shí),就預(yù)知到生產(chǎn)力會(huì)得到提高。
令人意外地是,“人工智能編碼助手”這個(gè)綽號(hào)遠(yuǎn)遠(yuǎn)低估了這個(gè)產(chǎn)品的好處。最新的產(chǎn)品遠(yuǎn)遠(yuǎn)超出了完成代碼行的范疇,它還可以幫助開(kāi)發(fā)人員討論功能、設(shè)計(jì)用戶體驗(yàn)、選擇正確的庫(kù)、應(yīng)用正確的語(yǔ)法、運(yùn)行臨時(shí)測(cè)試等等——所有這一切都是通過(guò)類似于用戶聊天時(shí)所享受的交互來(lái)完成的。
人工智能編碼助手的優(yōu)點(diǎn)在于,不管你是專家還是新手,即使是最熟練、最有經(jīng)驗(yàn)的開(kāi)發(fā)人員也都需要這位無(wú)所不知的神助攻。
對(duì)于專家而言,這位“AI智庫(kù)”可以從廣泛、深入、多樣化的代碼的巨大存儲(chǔ)庫(kù)中提出建議。
同樣,那些剛接觸軟件開(kāi)發(fā)的人可以在其特定任務(wù)的背景下受益于人工智能指導(dǎo),加速他的學(xué)習(xí)過(guò)程,甚至使熟練的業(yè)務(wù)用戶都能夠構(gòu)建應(yīng)用程序。
人工智能編碼工具可以自動(dòng)執(zhí)行許多任務(wù),以至于開(kāi)發(fā)人員可能會(huì)發(fā)現(xiàn)他們?cè)瓉?lái)的一些技能將不再需要。但這沒(méi)關(guān)系,因?yàn)樵S多工作都涉及到開(kāi)發(fā)人員很樂(lè)意放棄的苦差事。
1.搜索晦澀的文檔細(xì)節(jié)
即使是最敏銳的開(kāi)發(fā)人員也會(huì)花費(fèi)大量時(shí)間通過(guò) google 或 Stack Overflow 尋找各種細(xì)節(jié)。人工智能工具非常擅長(zhǎng)快速呈現(xiàn)正確的信息——不僅可以提供 API 的正確語(yǔ)法等詳細(xì)信息,還可以提供更廣泛的提示,例如“這個(gè)函數(shù)的參數(shù)是什么?” 或“找到一個(gè)可以完成 XX 任務(wù)的組件。” 是的,開(kāi)發(fā)人員需要驗(yàn)證人工智能的響應(yīng),但節(jié)省的時(shí)間和減少的乏味可能是驚人的。
2.在周期結(jié)束時(shí)編寫(xiě)怪物測(cè)試和文檔
敏捷開(kāi)發(fā)方法已經(jīng)要求開(kāi)發(fā)人員應(yīng)該在開(kāi)發(fā)過(guò)程中進(jìn)行測(cè)試,而不是在軟件開(kāi)發(fā)周期結(jié)束時(shí)進(jìn)行測(cè)試。但這需要工作。人工智能編碼助手使開(kāi)發(fā)人員能夠自動(dòng)生成細(xì)粒度的測(cè)試,作為生成代碼本身的副產(chǎn)品。出于同樣的原因,編寫(xiě)文檔的苦差事變得更加容易:人工智能編碼助手可以僅根據(jù)代碼提供組織良好的初稿。該文檔并不完美(通常不包括解釋設(shè)計(jì)選擇的重要方面),但編輯它會(huì)比從頭開(kāi)始容易得多。人工智能讓我們可以花更多時(shí)間來(lái)構(gòu)建應(yīng)用程序。
3.研究屎山
有了人工智能編碼助手,負(fù)責(zé)維護(hù)代碼的開(kāi)發(fā)人員就不必仔細(xì)研究其他人的工作來(lái)了解他們最初想要做什么。開(kāi)發(fā)者只需選擇一段代碼片段,然后讓AI編碼助手進(jìn)行解釋即可。
4.通過(guò)分析復(fù)雜代碼來(lái)艱苦地跟蹤錯(cuò)誤
動(dòng)態(tài)測(cè)試不僅可以捕獲錯(cuò)誤,人工智能編碼助手還可以在潛在錯(cuò)誤嵌入代碼之前向開(kāi)發(fā)人員發(fā)出警報(bào)。它們還允許開(kāi)發(fā)人員簡(jiǎn)單地選擇一段代碼,由人工智能工具識(shí)別出錯(cuò)誤或問(wèn)題,并獲得建議和應(yīng)用的代碼更改。安全缺陷也可以被識(shí)別,但請(qǐng)注意,人工智能編碼助手并不能替代全面的安全測(cè)試。
5.編寫(xiě)重復(fù)的代碼塊
盡管人工智能編碼助手的用途遠(yuǎn)不止代碼完成,但開(kāi)發(fā)人員會(huì)歡迎能夠消除編碼中最冗余的方面。IDE 中的 AI 代碼補(bǔ)全將自動(dòng)填充類、函數(shù)和名稱,從而消除重復(fù)任務(wù)。使用支持人工智能的工具創(chuàng)建軟件意味著更少的繁瑣任務(wù)和更多創(chuàng)造力。
于企業(yè)而言,AI編碼助手可以使開(kāi)發(fā)人員快速學(xué)習(xí)新領(lǐng)域,并填補(bǔ)組織最重要的軟件開(kāi)發(fā)工作中的人才缺口。
而于技術(shù)人員而言,AI編碼助手可以快速完成開(kāi)發(fā)人員最不喜歡做的任務(wù),更重要的是,它們可以在開(kāi)發(fā)人員工作時(shí)最需要的時(shí)刻顯示重要信息。