近年來,隨著AI技術(shù)的進(jìn)步、基礎(chǔ)設(shè)施建設(shè)的不斷完善,AI應(yīng)用場景不斷豐富,各類AI產(chǎn)品和工具層出不窮。其中,面向開發(fā)者的AI編程工具也在不斷迭代,并因宣稱能“幫開發(fā)者寫代碼”而引發(fā)關(guān)注。目前,可以為開發(fā)者提供編程建議的常用工具大致有兩類:一類是AI代碼補(bǔ)全工具;另一類是生成式AI工具。
?前一種AI代碼補(bǔ)全工具,在今年又有“新勢力”入場——亞馬遜云科技正式推出實(shí)時AI編程助手Amazon CodeWhisperer,免費(fèi)提供給所有開發(fā)人員使用。
Amazon CodeWhisperer使用實(shí)測
?綜合整理了開發(fā)者們在使用門檻、代碼建議能力(上下文聯(lián)系能力)、安全掃描以及在實(shí)戰(zhàn)中是否真的具備提效能力方面的反饋。
開發(fā)者容易上手嗎?
Amazon CodeWhisperer有簡單明了的官方教程,就在亞馬遜云科技官網(wǎng)即可找到。
?開發(fā)者安裝亞馬遜云科技的工具包插件,在Amazon CodeWhisperer彈出窗口使用電子郵件地址注冊,并使用亞馬遜云科技賬戶登陸,即可開始功能測試。部分開發(fā)者通過Jetbrains的plugin功能,查找亞馬遜云科技工具包插件,點(diǎn)擊“install”完成安裝,均反饋安裝過程比較方便。大部分的開發(fā)者都可以通過原有亞馬遜云科技的賬號授權(quán)順利登陸。
?部分開發(fā)者使用Goland的插件功能安裝,也可以一鍵順利安裝。少數(shù)開發(fā)者覺得登陸入口有點(diǎn)深(如果錯過了登錄的彈窗,用戶就需要使用config配置登陸憑證)??傮w來看,基本上所有開發(fā)者都可以順利安裝并開始使用。
代碼建議速度和實(shí)用性怎么樣?
?代碼建議能力是AI編程工具的核心能力,廣受開發(fā)者關(guān)注。絕大多數(shù)開發(fā)者都對此項(xiàng)能力進(jìn)行了專項(xiàng)測試。
- 代碼建議能力測試
?在現(xiàn)有代碼中,輸入一行注釋,“create a function,get response from openai”,測試Amazon CodeWhisperer會給出怎樣的反饋:
?測試小結(jié):Amazon CodeWhisperer可以完成整個功能的書寫,能夠做到以下幾點(diǎn):自動生成方法名稱,命名比較符合規(guī)范;可以基于上下文,獲取引用的項(xiàng)目,有較強(qiáng)的上下文聯(lián)系能力;可以讀取到上下文的配置文件,在這個例子里,可以正確拿到open_ai_key。
- 上下文聯(lián)系能力測試
?測試小結(jié):聯(lián)系上下文,Amazon CodeWhisperer的代碼建議用上了開發(fā)者自定義的函數(shù)。
?有開發(fā)者表示:“當(dāng)我遺漏了一個括號、忘記了引入某個模塊或使用了錯誤的函數(shù)參數(shù)時,它會立即給出相應(yīng)的警告?!贝蟛糠珠_發(fā)者認(rèn)為Amazon CodeWhisperer編輯器功能很實(shí)用,不僅能夠根據(jù)使用的變量、函數(shù)和類名提供相應(yīng)的補(bǔ)全選項(xiàng),還可以提示潛在的錯誤和問題。也有開發(fā)者談道:“Amazon CodeWhisperer讓我們可以實(shí)時共享代碼并進(jìn)行編輯,這樣可以減少文件來回傳輸?shù)穆闊?;提供的版本控制功能,讓我能夠輕松創(chuàng)建分支、合并更改和回滾代碼,讓團(tuán)隊(duì)在開發(fā)過程中更加靈活和有序。”
?參加測試的開發(fā)者們普遍反饋:開發(fā)者的注釋描述越準(zhǔn)確,Amazon CodeWhisperer生成的代碼質(zhì)量越高。整體而言,Amazon CodeWhisperer給出代碼建議的能力和速度基本達(dá)到開發(fā)者預(yù)期,也可以根據(jù)聯(lián)系上下文給出符合開發(fā)人員開發(fā)風(fēng)格的代碼建議。
安全掃描能否提高代碼可靠性?
?一些開發(fā)者對于AI編程工具持觀望或者“不信任”態(tài)度,原因之一可能是擔(dān)心代碼安全無法保證。Amazon CodeWhisperer內(nèi)置的安全掃描功能,可以幫助開發(fā)者掃描Java、JavaScript和Python編程語言中難以發(fā)現(xiàn)的漏洞。安全檢查功能不僅會檢測開發(fā)者自己寫出的代碼,還會檢測Amazon CodeWhisperer給出的建議代碼,力求最大程度上保證代碼的安全準(zhǔn)確。
?在實(shí)際測試時,Amazon CodeWhisperer安全檢查功能使用簡單方便,很快就可以給出修改意見,只需開發(fā)人員點(diǎn)擊開始檢測即可。如果安全檢測后的反饋是“nothing to show”,就表示安全檢測順利通過。開發(fā)人員可以在編寫代碼時隨時使用Amazon CodeWhisperer的安全檢查功能保證代碼質(zhì)量。
?測試小結(jié):Amazon CodeWhisperer提示開發(fā)者將此處的標(biāo)識設(shè)置改為“True”。
是否具備實(shí)戰(zhàn)中的提效能力?
?開發(fā)者們給出的反饋幾乎都是肯定的。有開發(fā)者表示:“有個很實(shí)用的功能,就是語法檢查。我寫代碼的時候,它會實(shí)時檢查語法錯誤,并給我標(biāo)記或提示。這樣我就能及時發(fā)現(xiàn)和改正錯誤,避免在編譯或者運(yùn)行時出現(xiàn)麻煩。尤其是在大型項(xiàng)目里,這個功能對于代碼的穩(wěn)定性和一致性非常重要?!逼鋵?shí)已經(jīng)有不少開發(fā)者正在使用不同的AI編程工具了,比如Amazon CodeWhisperer已經(jīng)幫助埃森哲Velocity團(tuán)隊(duì)的開發(fā)工作量減少了30%。
“人人都可以是開發(fā)者”
?回到開篇的問題:AI編程工具可以成倍提效嗎?答案是肯定的。根據(jù)對社區(qū)開發(fā)者的走訪,不難發(fā)現(xiàn),各類AI開發(fā)工具的出現(xiàn)正在進(jìn)一步降低開發(fā)門檻,不少非IT開發(fā)人員已經(jīng)也可以經(jīng)過快速學(xué)習(xí),嘗試使用AI工具進(jìn)行簡單但是可以滿足自用的軟件開發(fā)了。
?“人人都是開發(fā)者”的大趨勢下,我們可以從嘗試一款A(yù)I編程工具開始,感受AI改變編程的力量!
?當(dāng)然,想要開發(fā)環(huán)境變得更加便捷,亞馬遜云科技Amazon Lightsail虛擬專用服務(wù)器(VPS)也是不容錯過的,只需幾次點(diǎn)擊就可以創(chuàng)建屬于自己的網(wǎng)站或是應(yīng)用程序,并且還能自動配置聯(lián)網(wǎng)、訪問和安全環(huán)境。
?說到亞馬遜云科技Amazon Lightsail就不得不提到Amazon EC2了。在亞馬遜云科技云服務(wù)器Amazon EC2上,您可以完成絕大部分工作負(fù)載,以上聊到的Amazon CodeWhisperer和Amazon Lightsail也都可以部署在其之上,進(jìn)行輕松的遷移或應(yīng)用程序的構(gòu)建,讓開發(fā)者更加輕松便捷的開發(fā)針對個人需求的軟件或功能。