碼農(nóng)必備?清華大學(xué)開源了一款寫代碼神器!
:
提升程序員編碼效率,是一個(gè)經(jīng)久不衰的話題,從最初用純文本編輯器到后來代碼自動(dòng)補(bǔ)全,再到后來基于AI智能補(bǔ)全代碼,開發(fā)者效率的確在不斷提升。
關(guān)于新工具的出現(xiàn),一直都會(huì)有支持和反對(duì)的兩種聲音。
支持者認(rèn)為這些工具大大提升了開發(fā)效率,可以把有效的時(shí)間花費(fèi)在創(chuàng)造更多業(yè)務(wù)價(jià)值上。
反對(duì)者則認(rèn)為過于依賴這些工具,容易養(yǎng)成一個(gè)人的惰性,進(jìn)而大大降低開發(fā)水平。
個(gè)人認(rèn)為應(yīng)該擁抱技術(shù)的變化,我們不應(yīng)該因?yàn)閷?duì)新鮮事物的恐懼而停滯不前,甚至在沒有嘗試之前就開始盲目的批判。
就如同智能補(bǔ)全工具的出現(xiàn),逐漸的在覆蓋更多的開發(fā)者,也解放了很多開發(fā)者的時(shí)間,提升了效率。
今天,要給大家介紹的這款開發(fā)工具比智能補(bǔ)全工具更為智能、強(qiáng)大,可以認(rèn)為是智能補(bǔ)全的下一代產(chǎn)品。

這款工具的名字叫做CodeGeeX,來自清華大學(xué)知識(shí)工程實(shí)驗(yàn)室(KEG),開源2個(gè)月,目前已經(jīng)有700+star。
CodeGeeX是一款具有130億參數(shù)的多語言代碼生成模型,采用華為MindSpore框架時(shí)間,它是歷時(shí)兩個(gè)月再20多種編程語言的代碼語料庫的基礎(chǔ)上預(yù)訓(xùn)練得到。
這里需要注意一點(diǎn),它的功能并不是「代碼補(bǔ)全」,而是「代碼生成」。
也就是說,它能夠根據(jù)你的描述,或者上下文自動(dòng)生成一段代碼,和傳統(tǒng)上根據(jù)前面的輸入,自動(dòng)補(bǔ)全余下部分是截然不同的。
它目前支持Python、C++、Java、JavaScript、Go等多種主流編程語言,而且在代碼生成準(zhǔn)確度方面表現(xiàn)較好。
除了代碼生成之外,它還支持代碼翻譯,換句話說,你復(fù)制一段C++寫的代碼,可以輕松的翻譯成Python、Java等其他語言。
另外,它已經(jīng)支持目前比較熱門的編輯器VS Code。
目前,它主要支持4種使用方式,下面就以VS Code中的使用為例來逐個(gè)介紹一下。
隱匿模式
簡單來說就是,你輸入一段描述之后,然后停止輸入,CodeGeeX會(huì)根據(jù)上下文,從光標(biāo)停止處開始生成代碼。
可以看一下VS Code右下角的圖標(biāo),如果一直在轉(zhuǎn)動(dòng),就代表正在生成中,生成完成后會(huì)顯示「Done」,如果沒有建議,就會(huì)顯示「No Suggestion」。
如果有多個(gè)建議,可以通過「Alt/Option+」[或者「Alt/Option+]」來切換不同建議,通過Tab可以插入建議內(nèi)容。
舉個(gè)例子,假如輸入“write a bubble sort function”,它就會(huì)給出一個(gè)冒泡排序函數(shù)的建議:

交互模式
顧名思義,就是在隱匿模式的基礎(chǔ)上加了個(gè)交互式界面。
點(diǎn)擊Ctrl+Enter,會(huì)打開在右側(cè)打開一個(gè)交互界面,這樣CodeGeeX給出的建議就會(huì)顯示在右側(cè)交互界面。
我們可以點(diǎn)擊「Use Code」選擇對(duì)應(yīng)的代碼片段。

翻譯模式

這種模式前面提到過,也就是說,我們可以任意復(fù)制一段其他語言編寫的代碼,然后選中代碼,點(diǎn)擊「Ctrl+Alt+T」可以激活翻譯模式,選擇目標(biāo)語言,就可以把這段代碼翻譯到對(duì)應(yīng)的語言。
提示模式
在提示模式下,可以輸入一些額外的提示信息來觸發(fā)一些有趣的功能,例如,代碼解釋、概括、特定風(fēng)格等,它利用的是一種少樣本生成能力。

舉個(gè)例子,假如你自己定義了一個(gè)模板并且提供了一段逐行解釋的代碼作為例子,你可以通過快捷鍵「Alt/Option+t」觸發(fā)提示模式,選擇寫好的模版,它就會(huì)解釋你輸入的代碼。
傳送門:
中文介紹:
建議大家有空可以多瀏覽Github,有很多好用的開源免費(fèi)工具。但是,目前Github上項(xiàng)目多如牛毛,而且刷榜現(xiàn)在也非常嚴(yán)重,想要找到優(yōu)質(zhì)的項(xiàng)目變得越來越難。這里,給大家推薦Github上一個(gè)非常不錯(cuò)的項(xiàng)目《DevWeekly》,這個(gè)項(xiàng)目每周都會(huì)精挑細(xì)選一些優(yōu)質(zhì)的開源項(xiàng)目,涵蓋C++、JAVA、JavaScript、Python、Go等不同編程語言。此外,還有一些開源工具、優(yōu)秀的技術(shù)文章: