阿里1號AI「員工」上崗,007寫代碼助攻大廠程序員!炸掉祖?zhèn)魇荷酱a,Java絲滑改Python
就在剛剛,阿里云一口氣宣布兩個重磅消息:
- 內(nèi)部全面推行AI編程;
- 「通義靈碼」正式入職成為程序員的AI助理。
雖然最近AI程序員可以說是科技圈的頂流,AI編程工具作為程序員的外掛,并不是什么新鮮事。
但阿里云這次官方宣布全員使用AI,堪稱一次突破性的嘗試。
有趣的是,阿里云在儀式感上也拉滿了,通義靈碼不僅有自己的頭像,甚至還有自己的工號——AI001。
誒,難道說人類程序員真的要被AI取代么?
放心,「通義靈碼」不是來取代你們的,而是來加入你們的。
首個AI編程程序員入職阿里
幫助人類程序員完成真實世界的工作,通義靈碼真的靠譜嗎?
其實,通義靈碼早在去年云棲大會正式亮相,發(fā)布后僅一周通義靈碼就穩(wěn)居主流開發(fā)工具VSCode插件市場熱榜,時隔數(shù)月,它在技術和功能上全面升級,經(jīng)歷了20多個版本的迭代。
如今全新升級的模型,在HumanEval等榜單處于業(yè)界第一梯隊,已熟練掌握200+種編程語言,它的下載量更是突破了200萬,是當之無愧的國民AI編程工具。
下面就是一份通義靈碼的簡歷,請查收!
例如,在最基礎的代碼生成任務中,它能根據(jù)上下文自適應生成精準代碼,運用實時分析與檢索增強技術消除幻覺,真正做到秒懂程序員的需求。
在最新的版本中,通義靈碼還新增了代碼優(yōu)化功能,能夠深入分析代碼及上下文,快速定位語法錯誤、性能瓶頸等問題,并給出具體優(yōu)化代碼建議。
想要上傳一個excel文件?靈碼能根據(jù)上下文自動續(xù)寫,幫你寫代碼
它還能幫你寫單元測試,支持多種框架
懶得寫代碼注釋?就交給它吧,方法和行間注釋一鍵生成
bug找不出?讓它給你一鍵排查,識別報錯原因后,直接生成建議代碼
一句話,程序員寫代碼過程中的種種難題,它都能解決!
值得一提的是,「通義靈碼」每天都會有數(shù)百萬行的代碼被程序員采納,推理次數(shù)更是超過了兩千萬次,可以說是國內(nèi)最受歡迎的AI編程工具之一了。
話不多,我們就來看看「通義靈碼」到底能做些什么?
解釋遺留代碼
毫無疑問,最能「薅禿」開發(fā)者頭發(fā)的問題之一,就是處理前人留下來的「屎山」了……
就比如下面這個。
就算代碼不再維護、更新了,也還是需要從中逆向工程,推出業(yè)務模型、交互和規(guī)則,再重新構(gòu)建代碼和數(shù)據(jù)模型。
沒關系,「通義靈碼」來幫你解決。
召喚「通義靈碼」,選擇解釋代碼功能。
一眨眼的功夫,這段代碼的解釋,就出現(xiàn)了!大幅提升了開發(fā)者們讀代碼的效率。
開發(fā)
代碼優(yōu)化
在前端開發(fā)中,開發(fā)者們經(jīng)常會遇見繁瑣復雜的編程任務,絞盡腦汁去優(yōu)化代碼結(jié)構(gòu)。
而這個問題對「通義靈碼」來說,可謂so easy!
新增的「代碼優(yōu)化」功能,可以深入分析代碼上下文,快速鎖定語法錯誤、性能瓶頸……總之,你頭疼的絕大多數(shù)問題,它都能解決。
舉個栗子,選中下圖右欄中Java編寫的一段代碼,然后選擇編碼任務——代碼優(yōu)化。
「通義靈碼」看完這串代碼后,分析得出:
這創(chuàng)建的是一個CloseableHttpClient的實例代碼。然后使用這一實例發(fā)送30個HTTP GET請求,每個請求間隔5秒。同時代碼中打印了每次請求所需要的耗時,并計算了這些耗時90分位數(shù)(P90)。
隨后,它就列出了代碼中需要優(yōu)化的點,包括重復代碼、資源管理、異常處理等等。
提出建議的同時,「通義靈碼」還一步到位給出了具體優(yōu)化后的Java代碼。
在下圖中,中間標紅區(qū)域都是源代碼被修改的內(nèi)容,右邊綠色即為優(yōu)化后的代碼,看完就是四個字——賞心悅目。
最后,「通義靈碼」就整體優(yōu)化版本的調(diào)整,做了一個整體總結(jié)。
就這樣,開發(fā)者不僅提升了代碼質(zhì)量,還節(jié)約出大量時間,可以摸魚充電了。
代碼補全
對于程序員來說,代碼續(xù)寫是再熟悉不過的功能了,畢竟主流開發(fā)工具早已自帶了代碼補全功能。
只不過,這個準確率屬實有點下飯……
現(xiàn)在,AI編程工具終于重新定義代碼補全功能了,「通義靈碼」可以通過感知上下文,來續(xù)寫代碼,將代碼準確率提升帶了一個新的臺階。
當然,它續(xù)寫的代碼中,也不排除會存在某些問題,這時候就需要我們?nèi)祟惓绦騿T手動修改了,這就是咱們?nèi)祟惓绦騿T不可替代的價值。
數(shù)據(jù)庫
在數(shù)據(jù)庫問題上,我們也可以直接向它提問。
比如,想用數(shù)據(jù)庫來存儲照片,該怎么做?
它會回答說:可以使用關系型數(shù)據(jù)庫(RDBMS)或非關系型數(shù)據(jù)庫(NoSQL)來存儲照片。
并且,它還給出了具體示例。
測試
生成測試框架
前端的開發(fā)者們編寫代碼離不開AI編程工具,對于后端測試團隊們同樣如此。
眾所周知,用例的設計對于測試工作來說至關重要,其中,測試數(shù)據(jù)的數(shù)量和質(zhì)量更是會直接影響測試的覆蓋率。
但問題在于,收集各種各樣的測試用例不僅耗時,而且成本極高。
現(xiàn)在,有了大模型加持的「通義靈碼」,我們便可以直接讓它給出「RobotFramework的Hello world示例」。
然后,就可以坐等答案了。
為老代碼生成單元測試
很多公司上了代碼質(zhì)量管控的指標,會考評各個項目的單元測試覆蓋率。
很多老項目老代碼,或者著急交付的項目,單元測試嚴重缺失。
而用通義靈碼來對老代碼進行單元測試,效率非常高。
這種流程化的內(nèi)容交給AI來完成就非常的舒服。
它可以自動生成多種框架單元測試,為程序員節(jié)省不少時間。
運行調(diào)試錯誤
雖然AI工具不會主動寫B(tài)UG,但是人類程序員難免犯錯。所以代碼調(diào)試,是程序員們開發(fā)過程中不可或缺的一環(huán)。
程序中有什么bug,如何修復,很多時候都得需要調(diào)試來發(fā)現(xiàn)。
然而,調(diào)試過程遇到的錯誤,怎么辦?
放心,交給「通義靈碼」來解決!
如下圖所示,它可以幫我們運行調(diào)試錯誤。
運維
編寫運維腳本
除此之外,做運維的童鞋也可以讓「通義靈碼」幫忙編寫一個腳本。
比如向它提問:「一個Web程序運行的環(huán)境,需要安裝哪些依賴服務?」
它會立刻告訴你——
1. 服務器:Web程序需要在服務器上運行,可以選擇Apache、Nginx、IIS等Web服務器。
2. Web框架:根據(jù)Web程序的開發(fā)語言選擇相應的Web框架,如Django(Python)、Ruby on Rails(Ruby)、Express(JavaScript)等等。
3. 數(shù)據(jù)庫:根據(jù)Web程序的需求選擇相應的數(shù)據(jù)庫,如MySQL、PostgreSQL、MongoDB等。
4. 前端框架和庫:根據(jù)Web程序的需要選擇相應的前端框架和庫,如React、Angular、Vue.js等。
5. 編譯器或解釋器:根據(jù)Web程序的開發(fā)語言選擇相應的編譯器或解釋器,如Python解釋器、Java虛擬機等。
然后,它在右邊會自動為你生成以上依賴服務的安裝命令。
查找運維問題解決方案
運維過程中出現(xiàn)問題,不要愁。
直接問它:無法用SSH連接Ubuntu下面的ECS實例,該怎么辦?
它立馬告訴你,請按照以下這些步驟進行排查。
不知道相應的檢測命令?
直接問它,答案就在眼前——
程序猿是否會被AI取代?別怕,它只打輔助
最后,還是回到AI取代人類程序員的問題。
橫空出世的全球首個AI工程師Devin,能24h不間斷自主改寫代碼、訓練模型、構(gòu)建和部署應用;黃仁勛本人也表示,不久的將來,人類再也不需要學習編碼了,孩子們的編程課都停了吧。
一時間,恐慌鋪屏全網(wǎng),難道程序猿真要不存在了嗎?!
其實不然。在Devin橫空出世那篇文章下,在我們的留言區(qū)最多的聲音是這樣的——
網(wǎng)友:吾輩
還有人說,「程序員這碗飯還是能吃,只是飯碗沒有原來那么大了而已?!?/span>
網(wǎng)友:兔兔生威
「而現(xiàn)在的AI編程,性能還很差,很多連給人類打下手的能力都沒有,更別說替代人類了。」
網(wǎng)友:數(shù)據(jù)加載中
甚至有人說,如果程序員真的大量使用AI編程,搞不好還會催生出一種專門的人類程序員專屬新任務——「給AI擦屁股」。
網(wǎng)友:程序員吾本真
總之,至少現(xiàn)在來看,所有的AI編程工具還完全不足以替代程序員。
此外,有網(wǎng)友獲取了Devin的體驗資格之后,發(fā)現(xiàn)稍微復雜一些的任務,它現(xiàn)在依然無法完成。
比如讓它做一個能調(diào)用GPT-4和人下棋的網(wǎng)站。
它生成了幾步就被卡住。
它生成了一個數(shù)據(jù)可視化的網(wǎng)站,但是內(nèi)容依然有BUG。
最終,Devin只完成了一個簡單功能的Chrome的插件。
所以,我們對這些AI編程工具的態(tài)度,應該是擁抱,而不是畏懼。
在阿里云,用「通義靈碼」打輔助的程序員們,實打?qū)嵉靥嵘诵剩@也是阿里云要給全員配AI助理的底氣。
而如果未來某一天,AI大潮真的撲面而來,接管了所有人的工作,到時候能夠獨善其身的人,一定是了解AI、擅用AI的人。
當洪水涌過,最順應局勢的人,才有機會成為翻云覆雨的弄潮兒。