作者 | 張俊寶
近年來,隨著AI/ target=_blank class=infotextkey>人工智能技術進步和基礎設施建設的不斷完善,人工智能應用場景不斷豐富,各類 AI 產品和工具層出不窮。其中,面向開發者的 AI 編程工具也在不斷迭代,并因宣稱能“幫開發者寫代碼”而引發關注。粗放來看,現在可以為開發者提供編程建議的常用工具有兩類,一類是以 Kite、Github Copilot 為代表的 AI 代碼補全工具,另一類是以 ChatGPT 為代表的生成式 AI。
前一種 AI 代碼補全工具在上個月又有新勢力入場—— 亞馬遜云科技正式推出實時 AI 編程助手 Amazon CodeWhisperer,免費提供給所有開發人員使用。作為后起之秀,Amazon CodeWhisperer 有哪些不同?是否在實戰中具備提高效率的能力?為了獲得更多開發者真實反饋,提供給開發者更加友好的 AI 代碼補全工具,亞馬遜云科技《云上探索實驗室》近期推出 Amazon CodeWhisperer 產品體驗活動,廣邀開發者參與測評。讓我們一起來看看 Amazon CodeWhisperer 在實測中的表現。
Amazon CodeWhisperer 使用實測
我們綜合整理了開發者們在使用門檻、代碼建議能力(上下文聯系能力)、安全掃描以及在實戰中是否真的具備提效能力方面的反饋。
開發者容易上手嗎?
Amazon CodeWhisperer 官方 教程 簡單明了,開發者安裝亞馬遜云科技的工具包插件,在 Amazon CodeWhisperer 彈出窗口使用電子郵件地址注冊并使用亞馬遜云科技賬戶登陸即可開始功能測試。部分開發者通過 Jetbrains 的 plugin 功能,查找亞馬遜云科技工具包插件,點擊“install”完成安裝,均反饋安裝過程比較方便。有新用戶覺得賬戶注冊、填寫 secret key 的過程還是有些麻煩,但大部分的開發者都可以通過原有亞馬遜云科技的賬號授權順利登陸。
部分開發者使用 Goland 的插件功能安裝,也可以一鍵順利安裝。少數開發者覺得登陸入口有點深:如果錯過了登錄的彈窗,用戶就需要使用 config 配置登陸憑證。總體來看,基本上所有開發者都可以順利安裝并開始使用。
代碼建議速度和實用性怎么樣?
代碼建議能力是 AI 編程工具的核心能力,廣受開發者關注。絕大多數開發者都對此項能力進行了專項測試。
代碼建議能力測試
在現有代碼中,輸入一行注釋,“create a function,get response from OpenAI”,測試 Amazon CodeWhisperer 會給出怎樣的反饋。
測試小結: Amazon CodeWhisperer 可以完成整個功能的書寫,做到以下幾點:
- 自動生成方法名稱,命名比較符合規范
- 可以基于上下文,獲取引用的項目,有較強的上下文聯系能力
- 可以讀取到上下文的配置文件,在這個例子里,可以正確拿到 open_ai_key
上下文聯系能力測試
測試小結:聯系上下文,Amazon CodeWhisperer 的代碼建議用上了開發者自定義的函數。
有開發者表示:“當我遺漏了一個括號、忘記了引入某個模塊或使用了錯誤的函數參數時,它會立即給出相應的警告。” 大部分開發者認為 Amazon CodeWhisperer 編輯器功能很實用,不僅能夠根據使用的變量、函數和類名提供相應的補全選項,還可以提示潛在的錯誤和問題。有開發者談道:“Amazon CodeWhisperer 讓我們可以 實時共享代碼并進行編輯,這樣可以減少文件來回傳輸的麻煩;提供的版本控制功能,讓我能夠輕松創建分支、合并更改和回滾代碼, 讓團隊在開發過程中更加靈活和有序。”
參加測試的開發者們普遍反饋: 開發者的注釋描述越準確,Amazon CodeWhisperer 生成的代碼質量越高。整體而言,Amazon CodeWhisperer 給出代碼建議的能力和速度基本達到開發者預期,也可以根據聯系上下文給出符合開發人員開發風格的代碼建議,只是對于中文的理解和交互體驗上還可以進一步優化。
彈窗有些遮擋代碼
安全掃描能否提高代碼可靠性?
一些開發者對于 AI 編程工具持觀望或者“不信任”態度,原因之一可能是擔心代碼安全無法保證。 Amazon CodeWhisperer 內置的安全掃描,是一些 AI 編程工具沒有的功能。這個功能可以幫助開發者掃描 JAVA、Java 和 Python/ target=_blank class=infotextkey>Python 編程語言中難以發現的漏洞。安全檢查功能不僅檢測開發者自己寫出的代碼,還會檢測 Amazon CodeWhisperer 給出的建議代碼,力求最大程度上保證代碼的安全準確。
在實際測試時,Amazon CodeWhisperer 安全檢查功能使用簡單方便,很快就可以給出修改意見,只需開發人員點擊開始檢測即可。如果安全檢測后的反饋是“nothing to show”,就表示安全檢測順利通過。開發人員可以在編寫代碼時隨時使用 Amazon CodeWhisperer 的安全檢查功能保證代碼質量。
測試小結:Amazon CodeWhisperer 提示開發者將此處的標識設置改為“True”。
是否具備實戰中的提效能力?
大部分開發者給出的反饋是肯定的。有開發者表示:“有個很實用的功能,就是語法檢查。我寫代碼的時候, 它會實時檢查語法錯誤,并給我標記或提示。這樣我就能及時發現和改正錯誤,避免在編譯或者運行時出現麻煩。尤其是在大型項目里,這個功能對于代碼的穩定性和一致性非常重要。”其實已經有不少開發者正在使用不同的 AI 編程工具了,比如 Amazon CodeWhisperer 已經幫助埃森哲 Velocity 團隊的開發工作量減少了 30%。
除了參加產品體驗活動的開發者外,我們還特意邀請了 3 位長期使用 AI 編程工具的開發者進行體驗。他們表示, Amazon CodeWhisperer 可以解決簡單的編程需求,提高開發效率,期待 Amazon CodeWhisperer 交互體驗提升、安全掃描方面支持更多語言等方面還可以更進一步。
“人人都可以是開發者”
回到開篇的問題:AI 編程工具可以成倍提效嗎?答案是肯定的。根據對社區開發者的走訪,我們發現, 部分開發者已經開始使用 ChatGPT 等類似產品生成大段代碼建議,再使用 AI 編程工具來進行精細化調整。可以看到,各類 AI 開發工具的出現正在進一步降低開發門檻,不少非 IT 開發人員已經也可以經過快速學習,嘗試使用 AI 工具進行簡單但是可以滿足自用的軟件開發了。