新聞資訊
Core business
行業資訊
<< 返回
如何編寫高效代碼?aiXcoder編程機器人正确解鎖“程序猿”新技能
發表于    2019-07-29 02:21:47
如何編寫高效代碼?aiXcoder編程機器人正确解鎖“程序猿”新技能

996、發際線後移······是對程序員真實生活狀态的概括,然而,每天24小時連續在線的工作強度,并不能從根本上提升程序員的的開發效率。

此外,現在開發者所書寫的代碼,大多都已被重複使用多次。即便如此,他們依然要被複雜、繁複的代碼邏輯占去大量時間,未能把更多的時間和精力真正的投入到富有創造性的勞動當中。

近日,獵雲網接觸到一款智能編程機器人aiXcoder——這是一款人工智能輔助軟件,可以将人工智能與軟件開發連接起來,利用人工智能技術輔助開發者自動進行程序編寫。

aiXcoder成立于2018年初,據CTO郝逸洋介紹,aiXcoder智能編程機器人可以幫助編程開發者們承擔大部分勞動:比如處理跟程序生成、理解及分析相關的事情,像代碼自動補全(輔助程序員編寫代碼)、相似代碼搜索、錯誤自動定位(幫助程序員找bug)以及代碼的規範性檢查等等。

預測程序員編程意圖,實現代碼自動補全

在aiXcoder的輔助下,程序員将擺脫過去逐字逐句的編程模式。以代碼自動補全功能為例,它能夠自動預測程序員的編程意圖,為開發者推薦出的代碼補更長、更準确,從而程序員在編寫過程中可以通過“一鍵選擇”的方式,直接補全代碼。


aiXcoder“一鍵代碼補全”

不僅如此,經過訓練的aiXcoder還能根據程序員使用習慣,對頻繁使用的成員、方法進行智能排序,從而大大提高代碼的編寫效率。

而且,aiXcoder還能在程序編寫的過程中,通過智能的搜索并推薦與當前功能代碼相似的程序,開闊了程序員的思維,為程序員提供了有力的參考。

智能搜索與相似代碼推薦

采訪過程中,郝逸洋親自演示了aiXcoder的使用過程,當他在編寫程序時,aiXcoder自動預測并迅速給出了提示,幾乎整一句代碼都能通過aiXcoder的自動補全技術實現正确編寫,按照這種方式,一個程序在短時間内就能輕松完成。

正是這樣一個aiXcoder智能編程機器人,能将編程開發人員的效率和質量提上去,同時能把人從那些複雜的、繁複的代碼邏輯中解脫出來。

aiXcoder就像一個時刻陪伴程序員工作的“夥伴”,與程序員一起編寫代碼,幫助程序員查缺補漏。

aiXcoder——一個會學習的“引擎大腦”

據獵雲網了解,aiXcoder強大的代碼自動補全技術,區别于普通編譯軟件(比如IDE)自帶的基于編程語法的代碼提示,aiXcoder是基于語義進行代碼生成補全的——其背後是一個“會學習”的深度學習引擎大腦。

aiXcoder 采用了專門應用于程序分析與生成的特定深度神經網絡模型,其原理是用深度神經網絡構造起一個龐大的深度神經網絡體系,然後基于GitHub和Stackoverflow等優質平台上的開源代碼數據集加以訓練,最後針對不同的任務、對引擎大腦進行特别訓練,以插件的形式整合在常用的IDE中。

如何編寫高效代碼?aiXcoder編程機器人正确解鎖“程序猿”新技能

aiXcoder的原生技術來源于北京大學高可信軟件技術教育部重點實驗室,首席科學家李戈是北京大學信息科學技術學院軟件研究所的副教授,2013年,他曾到斯坦福大學AI實驗室中的吳恩達團隊下,以訪問學者的身份進行合作研究。

在此期間,李戈提出了利用深度神經網絡進行程序分析和生成的想法。

對于這個想法,曾有Stanford教授提出自己的疑惑:“計算機知道程序的一切,它可以編譯、可以run(運行),你為什麼還要分析他?”

在李戈看來,“計算機雖然能運行程序,但并不知道程序的語義,這就是為什麼有一些惡意的程序還會被計算機所運行。如果它知道程序的語義,就不會去運行它。我想構造一個神經網絡,使其專門用來分析程序的語義。在此基礎上,還可以構造深度神經網絡用于程序的生成。”

這,就是aiXcoder最初的思想來源。

北大坐陣,團隊成員缺一不可

李戈所在的研究團隊北京大學高可信軟件技術教育部重點實驗室,也是國際上最早運用深度學習技術進行計算機程序分析與生成研究的團隊之一。

它以北京大學軟件研究所為基礎建立,并由我國著名的軟件科學家楊芙清院士、梅宏院士帶領,是國際上領先的軟件與人工智能研究團隊。

此外,矽心科技團隊成員也大都在軟件領域具有多年的豐富經驗。

如何編寫高效代碼?aiXcoder編程機器人正确解鎖“程序猿”新技能

COO劉洋畢業于南開大學本科、北京大學碩士,後就職于了阿爾卡特朗訊、黑莓,在朗訊工作了五年後又開始自己的創業之旅,具有豐富的創業經驗。

CTO郝逸洋畢業于北京大學本科、日本早稻田大學碩士,後去就職于微軟亞洲工程院院人工智能語音交互團隊,一直從事人機智能交互、深度學習技術等相關方向上的研究與開發。

打造特色的B、C端服務

随着公司的成立,aiXcoder智能編程機器人也在不斷的進步。

當前,aiXcoder采用“雲服務”的運行模式,它的深度學習引擎部署在雲服務器中,就如同一個雲端的“編程大腦”,開發者隻需要下載一個客戶端插件,這其中涵蓋了IntelliJ、Eclipse、VS-Code等主流集成開發環境,支持當下各種主流的開發語言,如Python、Java、C++等。

郝逸洋表示,aiXcoder将于近期推出PHP和JavaScript語言等前端開發語言的支持。

在此基礎上,開發者們隻需選擇相應的插件即可實現與“雲端AI服務”的對接,随時随地使用自己的“編程大腦”,不需要更繁瑣操作流程。

aiXcoder主要面向企業用戶提供智能編程服務,對于企業用戶,aiXcoder提供了定制化的專屬服務,以“企業私有雲”的方式部署在企業中,利用企業自己的代碼對深度學習引擎進行訓練,使aiXcoder學習到企業代碼中的隐含邏輯和知識,從而為企業中的開發者提供貼身的編程輔助。


同時,配合aiXcoder的企業開發者服務模式,推出了“aiXmanager開發質效提升”一體化解決方案,aiXmanager能夠對程序員的“指尖行為”所形成的大數據進行分析,有效揭示出開發過程中存在的一系列效率和質量問題,幫助企業挖掘潛在的開發潛能。

在此之前,程序員的“指尖行為”是軟件開發中典型的“暗數據”,價值大卻難以捕獲、難以分析。在aiXcoder的幫助下,這些暗數據被充分利用了起來。

哪些技術難點最影響開發效率?哪些代碼質量問題最為突出?哪些程序代碼耗費時間最多?哪些代碼被修改的次數最多?等等這些影響企業開發能力的潛在問題被明明白白揭示出來。

面向C端用戶,aiXcoder主推兩個版本,分别是Community版(社區版)和Professional版(專業版)。社區版可以免費下載使用,而Professional版則會更智能,它能夠從用戶編寫的代碼中不斷學習個性化的編程模式和編程習慣,能為用戶打造一個更加智能的私人編程“助理”。

現階段,aiXcoder團隊已經為華為、百度、阿裡巴巴、軟通動力等公司提供了企業定制服務。

來自企業開發者的反饋信息表明:在aiXcoder的幫助下,編程開發人員能夠在最短的時間内高效的編寫代碼,有效的節省了程序員的開發時間,同時也降低了程序員對API文檔或相關信息的依賴。使得将開發者從繁複的代碼邏輯中解脫出來,讓他們有機會能投入到一些更有創新性的工作上去。

aiXcoder完勝kite及TabNine

當前在智能編程機器人領域内,還有來自美國的兩款插件——kite、TabNine也和aiXcoder處于同一賽道。其中,kite在2019年完成了1700萬美元的A輪融資。

在公開、透明的條件下對比,aiXcoder的效率提升是上述兩個競品的1.5~3倍;aiXcoder包含更多的長推薦(多于兩個詞),數量是競品的3~5倍;aiXcoder包含更多的一整行代碼推薦,長推薦數量是競品的2~10倍。

例如,在與kite的迎面對比中,用kite官方網站給出的示例代碼進行對比,普通IDE需要102鍵完成輸入,kite可以降低為54鍵,但aiXcoder僅需24鍵即可完成輸入;在以Tensorflow公開開源代碼進行的測試中,kite僅有24次正确推薦,此時aiXcoder的正确推薦則達82次,是kite的3.42倍。

TabNine是近期被國内媒體推送的一款插件,在與TabNine的對比中,aiXcoder的優勢更為明顯。

用TabNine官方網站給出的示例代碼進行對比,aiXcoder僅需132次按鍵即輸入完畢,而TaNine需要228次按鍵才能完成輸入,Kite也需要214次按鍵才能完成,在該示例中,aiXcoder的輸入效率是TabNine的1.73倍,是kite的1.62倍,可見aiXcoder的優勢非常明顯。

如何編寫高效代碼?aiXcoder編程機器人正确解鎖“程序猿”新技能

實際IDE中代碼補全對比

在未來,aiXcoder想要打造成一款能夠自動幫助程序員完成程序編寫的“智能編程機器人”,以低耗時、高效率、便捷式的方式切入到開發者的工作中。

“aiXcoder将取代人類程序員嗎?”

對此,李戈表示:“我們從來沒想要替代掉人類,我們隻是想讓人類的機械勞動少一點、重複勞動少一點,把更多時間和精力用到創新性的工作上去。”







版權申明:本内容來自于互聯網,本文的版權歸原作者所有,文章言論不代表飛旭軟件的觀點,飛旭軟件不承擔任何法律責任。如有侵權請聯系QQ:958289320進行反饋。