當前位置: 華文世界 > 科技

阿裏1號AI員工上崗,007寫程式碼助攻大廠程式設計師!炸掉祖傳屎山程式碼

2024-04-02科技

新智元報道

編輯:編輯部

【新智元導讀】阿裏雲最近入職的這位新員工,程式設計師們看了拍手叫好!每天,它都有數百萬行程式碼被采用,單日推理次數超兩千萬。007敲程式碼,兢兢業業改bug,從不抱怨。它不搶程式設計師飯碗,主打輔助!

就在剛剛,阿裏雲一口氣宣布兩個重磅訊息:

- 內部全面推行AI編程;

- 「通義靈碼」正式入職成為程式設計師的AI助理。

雖然最近AI程式設計師可以說是科技圈的頂流,AI編程工具作為程式設計師的外掛,並不是什麽新鮮事。

但阿裏雲這次官方宣布全員使用AI,堪稱一次突破性的嘗試。

有趣的是,阿裏雲在儀式感上也拉滿了,通義靈碼不僅有自己的頭像,甚至還有自己的工號——AI001。

誒,難道說人類程式設計師真的要被AI取代麽?

放心,「通義靈碼」不是來取代你們的,而是來加入你們的。

第一個AI編程程式設計師入職阿裏

幫助人類程式設計師完成真實世界的工作,通義靈碼真的靠譜嗎?

其實,通義靈碼早在去年雲棲大會正式亮相,釋出後僅一周通義靈碼就穩居主流開發工具VSCode外掛程式市場熱榜,時隔數月,它在技術和功能上全面升級,經歷了20多個版本的叠代。

如今全新升級的模型,在HumanEval等榜單處於業界第一梯隊,已熟練掌握200+種程式語言,它的下載量更是突破了200萬,是當之無愧的國民AI編程工具。

下面就是一份通義靈碼的簡歷,請查收!

例如,在最基礎的程式碼生成任務中,它能根據上下文自適應生成精準程式碼,運用實分時析與檢索增強技術消除幻覺,真正做到秒懂程式設計師的需求。

在最新的版本中,通義靈碼還新增了程式碼最佳化功能,能夠深入分析程式碼及上下文,快速定位語法錯誤、效能瓶頸等問題,並給出具體最佳化程式碼建議。

想要上傳一個excel檔?靈碼能根據上下文自動續寫,幫你寫程式碼

它還能幫你寫單元測試,支持多種框架

懶得寫程式碼註釋?就交給它吧,方法和行間註釋一鍵生成

bug找不出?讓它給你一鍵排查,辨識報錯原因後,直接生成建議程式碼

一句話,程式設計師寫程式碼過程中的種種難題,它都能解決!

值得一提的是,「通義靈碼」每天都會有數百萬行的程式碼被程式設計師采納,推理次數更是超過了兩千萬次,可以說是國內最受歡迎的AI編程工具之一了。

話不多,我們就來看看「通義靈碼」到底能做些什麽?

解釋遺留程式碼

毫無疑問,最能「薅禿」開發者頭發的問題之一,就是處理前人留下來的「屎山」了……

就比如下面這個。

就算程式碼不再維護、更新了,也還是需要從中逆向工程,推出業務模型、互動和規則,再重新構建程式碼和數據模型。

沒關系,「通義靈碼」來幫你解決。

召喚「通義靈碼」,選擇解釋程式碼功能。

一眨眼的功夫,這段程式碼的解釋,就出現了!大幅提升了開發者們讀程式碼的效率。

開發

程式碼最佳化

在前端開發中,開發者們經常會遇見繁瑣復雜的編程任務,絞盡腦汁去最佳化程式碼結構。

而這個問題對「通義靈碼」來說,可謂so easy!

新增的「程式碼最佳化」功能,可以深入分析程式碼上下文,快速釘選語法錯誤、效能瓶頸……總之,你頭疼的絕大多數問題,它都能解決。

舉個栗子,選中下圖右欄中Java編寫的一段程式碼,然後選擇編碼任務——程式碼最佳化。

「通義靈碼」看完這串程式碼後,分析得出:

這建立的是一個CloseableHttpClient的例項程式碼。然後使用這一例項發送30個HTTP GET請求,每個請求間隔5秒。同時程式碼中打印了每次請求所需要的耗時,並計算了這些耗時90分位數(P90)。

隨後,它就列出了程式碼中需要最佳化的點,包括重復程式碼、資源管理、例外處理等等。

提出建議的同時,「通義靈碼」還一步到位給出了具體最佳化後的Java程式碼。

在下圖中,中間標紅區域都是原始碼被修改的內容,右邊綠色即為最佳化後的程式碼,看完就是四個字——賞心悅目。

最後,「通義靈碼」就整體最佳化版本的調整,做了一個整體總結。

就這樣,開發者不僅提升了程式碼品質,還節約出大量時間,可以摸魚充電了。

程式碼補全

對於程式設計師來說,程式碼續寫是再熟悉不過的功能了,畢竟主流開發工具早已內建了程式碼補全功能。

只不過,這個準確率屬實有點下飯……

現在,AI編程工具終於重新定義程式碼補全功能了,「通義靈碼」可以透過感知上下文,來續寫程式碼,將程式碼準確率提升帶了一個新的台階。

當然,它續寫的程式碼中,也不排除會存在某些問題,這時候就需要我們人類程式設計師手動修改了,這就是咱們人類程式設計師不可替代的價值。

資料庫

在資料庫問題上,我們也可以直接向它提問。

比如,想用資料庫來儲存照片,該怎麽做?

它會回答說:可以使用關系型資料庫(RDBMS)或非關系型資料庫(NoSQL)來儲存照片。

並且,它還給出了具體範例。

測試

生成測試框架

前端的開發者們編寫程式碼離不開AI編程工具,對於後端測試團隊們同樣如此。

眾所周知,用例的設計對於測試工作來說至關重要,其中,測試數據的數量和品質更是會直接影響測試的覆蓋率。

但問題在於,收集各種各樣的測試用例不僅耗時,而且成本極高。

現在,有了大模型加持的「通義靈碼」,我們便可以直接讓它給出「RobotFramework的Hello world範例」。

然後,就可以坐等答案了。

為老程式碼生成單元測試

很多公司上了程式碼品質管控的指標,會考評各個計畫的單元測試覆蓋率。

很多老計畫老程式碼,或者著急交付的計畫,單元測試嚴重缺失。

而用通義靈碼來對老程式碼進行單元測試,效率非常高。

這種流程化的內容交給AI來完成就非常的舒服。

它可以自動生成多種框架單元測試,為程式設計師節省不少時間。

執行偵錯錯誤

雖然AI工具不會主動寫BUG,但是人類程式設計師難免犯錯。所以程式碼偵錯,是程式設計師們開發過程中不可或缺的一環。

程式中有什麽bug,如何修復,很多時候都得需要偵錯來發現。

然而,偵錯過程遇到的錯誤,怎麽辦?

放心,交給「通義靈碼」來解決!

如下圖所示,它可以幫我們執行偵錯錯誤。

運維

編寫運維指令碼

除此之外,做運維的童鞋也可以讓「通義靈碼」幫忙編寫一個指令碼。

比如向它提問:「一個Web程式執行的環境,需要安裝哪些依賴服務?」

它會立刻告訴你——

1. 伺服器:Web程式需要在伺服器上執行,可以選擇Apache、Nginx、IIS等Web伺服器。

2. Web框架:根據Web程式的開發語言選擇相應的Web框架,如Django(Python)、Ruby on Rails(Ruby)、Express(JavaScript)等等。

3. 資料庫:根據Web程式的需求選擇相應的資料庫,如MySQL、PostgreSQL、MongoDB等。

4. 前端框架和庫:根據Web程式的需要選擇相應的前端框架和庫,如React、Angular、Vue.js等。

5. 編譯器或直譯器:根據Web程式的開發語言選擇相應的編譯器或直譯器,如Python直譯器、Java虛擬機器等。

然後,它在右邊會自動為你生成以上依賴服務的安裝命令。

尋找運維問題解決方案

運維過程中出現問題,不要愁。

直接問它:無法用SSH連線Ubuntu下面的ECS例項,該怎麽辦?

它立馬告訴你,請按照以下這些步驟進行排查。

不知道相應的檢測命令?

直接問它,答案就在眼前——

程式猿是否會被AI取代?別怕,它只打輔助

最後,還是回到AI取代人類程式設計師的問題。

橫空出世的全球第一個AI工程師Devin,能24h不間斷自主覆寫程式碼、訓練模型、構建和部署套用;黃仁勛本人也表示,不久的將來,人類再也不需要學習編碼了,孩子們的編程課都停了吧。

一時間,恐慌鋪屏全網,難道程式猿真要不存在了嗎?!

其實不然。在Devin橫空出世那篇文章下,在我們的留言區最多的聲音是這樣的——

網友:吾輩

還有人說,「程式設計師這碗飯還是能吃,只是飯碗沒有原來那麽大了而已。」

網友:兔兔生威

「而現在的AI編程,效能還很差,很多連給人類打下手的能力都沒有,更別說替代人類了。」

網友:數據載入中

甚至有人說,如果程式設計師真的大量使用AI編程,搞不好還會催生出一種專門的人類程式設計師專屬新任務——「給AI擦屁股」。

網友:程式設計師吾本真

總之,至少現在來看,所有的AI編程工具還完全不足以替代程式設計師。

此外,有網友獲取了Devin的體驗資格之後,發現稍微復雜一些的任務,它現在依然無法完成。

比如讓它做一個能呼叫GPT-4和人下棋的網站。

它生成了幾步就被卡住。

它生成了一個數據視覺化的網站,但是內容依然有BUG。

最終,Devin只完成了一個簡單功能的Chrome的外掛程式。

所以,我們對這些AI編程工具的態度,應該是擁抱,而不是畏懼。

在阿裏雲,用「通義靈碼」打輔助的程式設計師們,實打實地提升了效率,這也是阿裏雲要給全員配AI助理的底氣。

而如果未來某一天,AI大潮真的撲面而來,接管了所有人的工作,到時候能夠獨善其身的人,一定是了解AI、擅用AI的人。

當洪水湧過,最順應局勢的人,才有機會成為翻雲覆雨的弄潮兒。