成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

代碼智能技術(shù)如何應(yīng)用到日常開發(fā)?

網(wǎng)絡(luò)
阿里云云效代碼智能團隊通過AI技術(shù),打造了多款業(yè)界領(lǐng)先的智能編碼以及代碼檢測工具,是國內(nèi)首個將AI能力應(yīng)用到代碼評審場景的團隊。此外,我們也通過與學(xué)術(shù)界的深入合作,通過論文和專利,保持著技術(shù)的先進性。下面我們詳細(xì)介紹。

01/ 從開發(fā)者的煩惱說起

開發(fā)者在編寫代碼時,需要花費大量時間在低層次的重復(fù)編碼上,特別是針對一些語法比較冗余的開發(fā)語言。

同時,開發(fā)者經(jīng)常被戲稱為面向搜索引擎編程,因為我們經(jīng)常需要通過通用搜索引擎去查詢文檔資料,但是通用搜索引擎的內(nèi)容質(zhì)量參差不齊,開發(fā)者在找文檔、選文檔上都需要花費大量時間,這會讓我們的開發(fā)過程碎片化,無法集中精力聚焦在業(yè)務(wù)邏輯的開發(fā)上。

在代碼評審階段,評審人需要費時費力的人工評審,特別是當(dāng)變更代碼特別多的時候,評審人很難去完成評審任務(wù),只能大致看一下,從而違背了評審的初衷。在評審過程中,傳統(tǒng)的代碼檢測工具無法發(fā)現(xiàn)深層次的潛在缺陷,也不能提供缺陷的修復(fù)方案,從而為線上故障埋下了隱患。 

開發(fā)過程中存在的問題

那么諸多的煩惱,應(yīng)該怎么解決呢?

02/ 代碼智能如何賦能日常開發(fā)

阿里云云效代碼智能團隊通過AI技術(shù),打造了多款業(yè)界領(lǐng)先的智能編碼以及代碼檢測工具,是國內(nèi)首個將AI能力應(yīng)用到代碼評審場景的團隊。此外,我們也通過與學(xué)術(shù)界的深入合作,通過論文和專利,保持著技術(shù)的先進性。下面我們詳細(xì)介紹。

代碼智能補全能力及原理

在編寫代碼時,云效Codeup 能通過 WebIDE 為開發(fā)者提供智能化的編碼輔助,快速完成輕量級編碼,也能讓開發(fā)者通過語言描述快速地找到所需的代碼文檔或者代碼示例,減少編碼過程的碎片化。

在編寫代碼時,只需要輸入幾個字符,甚至一個字符,代碼智能補全插件就能結(jié)合代碼上下文及其語義,推薦出多個整行的代碼補全候選項,前面標(biāo)注圖標(biāo)的就是代碼智能補全插件提供的結(jié)果。在不同的代碼行,輸入同一個字符,比如X字符,它就能推薦出更適合當(dāng)前位置的行級代碼補全結(jié)果。它也能自動地將代碼上文中出現(xiàn)的變量或參數(shù),自動地填充到合適的代碼補全候選項中。

代碼智能補全能夠幫助開發(fā)者減少重復(fù)性較高的低層次編碼,大幅提升編碼效率,以視頻演示的代碼片段為例,

如果只是使用 IDE 內(nèi)置的代碼補全,需要敲擊鍵盤700次,花費5分鐘的時間才能完成代碼的編寫;

使用某業(yè)界頂尖的同類產(chǎn)品,鍵盤輸入次數(shù)減少了33%,花費的時間減少了6%。為什么鍵盤敲擊次數(shù)減少了很多,時間減少的卻很少呢?因為它給出的代碼補全候選項過多,并且存在較多的錯誤,需要開發(fā)者花時間去做選擇,選擇太多反而不是好事;

使用我們云效自主研發(fā)的代碼智能補全插件,鍵盤輸入次數(shù)減少了65%,編碼耗時減少了57%,只需要2分鐘左右就能完成代碼的編寫。

那么我們是如何做到的呢?我們使用了多模型融合技術(shù),將擅長點各有側(cè)重的多個模型融合到一起,一個人決策可能不太準(zhǔn),多個人一起決策就能盡可能的減少誤判,其中的深度學(xué)習(xí)模型、語義模型等都能做到代碼上下文的感知,輸入同一個字符,在不同的代碼位置,會推薦不同的代碼補全結(jié)果,并且能將上文中出現(xiàn)的變量或參數(shù),自動填充到補全的候選項中。

阿里巴巴內(nèi)部開發(fā)者的使用情況顯示,相比于 IDE 內(nèi)置的補全,代碼智能補全能幫助開發(fā)者平均提升20%的編碼效率。那么代碼智能補全的實現(xiàn)原理是怎么樣的呢?

我們會將代碼解析成抽象語法樹,并對AST進行數(shù)據(jù)處理,我們將處理好的數(shù)據(jù)通過深度學(xué)習(xí)模型進行訓(xùn)練,剛開始的幾個迭代,還只能生成一些雜亂的序列,模型會將生成的序列與期望生成的序列進行對比,計算誤差并更正模型數(shù)據(jù),在N個迭代之后,它已經(jīng)能生成符合語法的正確代碼序列。在代碼智能補全階段,我們將深度學(xué)習(xí)模型、語義模型、統(tǒng)計學(xué)模型等多個不同種類的模型融合在一起,去生成代碼補全的候選項,然后通過語法校正,避免將不符合語法的代碼推薦給開發(fā)者。

代碼智能評審在代碼評審中,當(dāng)開發(fā)者創(chuàng)建評審時,云效Codeup 會為其推薦更合適的評審人,他可能更熟悉變更的代碼,而評審人也能在評審列表上看到每個評審的預(yù)估耗時,幫助評審人充分利用碎片化時間進行評審,同時在瀏覽評審時,開發(fā)者經(jīng)常需要查看某個 API 的定義或引用,而我們提供的語法跳轉(zhuǎn)服務(wù)可以讓評審人像在 IDE 中一樣,在網(wǎng)頁端進行代碼定義和引用的跳轉(zhuǎn)。此外,我們也提供了更深層次的代碼檢測工具幫助評審人更快的發(fā)現(xiàn)隱藏缺陷,并能快速的修復(fù)缺陷。

代碼智能安全檢測關(guān)于代碼檢測,這里主要聊一下代碼內(nèi)容安全的檢測。說到代碼安全,每年都會有非常多漏洞被發(fā)現(xiàn),并且被黑客利用。比如早些年的Struts框架上傳文件模塊的漏洞,能讓黑客遠(yuǎn)程執(zhí)行Shell命令;近期的比如Chrome的零日漏洞,它存在Use-After-Free的問題,它會允許黑客在渲染進程中去執(zhí)行遠(yuǎn)程代碼,比如用戶如果在Chrome中打開PDF文件,黑客就能通過遠(yuǎn)程命令獲取相關(guān)的用戶數(shù)據(jù)。

為此,云效Codeup為開發(fā)者提供了依賴包漏洞檢測、源碼漏洞檢測等代碼內(nèi)容安全檢測工具。

依賴包漏洞檢測

依賴包漏洞檢測能幫助開發(fā)者發(fā)現(xiàn)三方包中存在的漏洞隱患,三方包大部分是開源軟件,而開源軟件很少進行安全測試,并且黑客也更愿意去發(fā)現(xiàn)開源軟件的漏洞,因為代碼是開源的,比較容易發(fā)現(xiàn)安全漏洞,而且一旦發(fā)現(xiàn)了安全漏洞,那么它的影響面會很大,絕大部分引用了存在安全漏洞三方包的應(yīng)用,都會受到黑客攻擊的威脅。

云效Codeup 的依賴包漏洞檢測工具會先將代碼進行編譯構(gòu)建,并采集代碼所有的依賴包,然后通過漏洞匹配算法從漏洞庫中查詢準(zhǔn)確的漏洞信息,為了讓漏洞庫覆蓋更全面,我們集成了多個外部漏洞庫以及阿里集團安全團隊自建的漏洞庫。開發(fā)者獲取到的漏洞信息會包含建議升級的版本范圍,為了減少依賴包版本升級后對應(yīng)用穩(wěn)定性產(chǎn)生的影響,我們會對每個依賴包版本進行有效性以及兼容性分析,然后會為開發(fā)者推薦建議升級的版本號,并且提供通過一鍵創(chuàng)建代碼評審修復(fù)依賴包漏洞的快捷入口。

源碼漏洞檢測

在代碼內(nèi)容安全檢測領(lǐng)域,除了剛才提到的依賴包漏洞檢測,我們也提供了對代碼庫自身的源碼漏洞檢測工具。

云效Codeup 基于源傘檢測引擎,將代碼中的數(shù)據(jù)流和控制流轉(zhuǎn)換成數(shù)學(xué)語言,然后對數(shù)學(xué)語言進行定理證明,能夠更準(zhǔn)確的推導(dǎo)代碼中的路徑條件,減少誤報。同時,它具備跨函數(shù)的全文分析能力,比如有多層的函數(shù)調(diào)用關(guān)系,如果最底層的函數(shù)存在一些代碼安全風(fēng)險,并且會影響最上層的業(yè)務(wù)代碼,它也能通過將代碼的數(shù)據(jù)流以及函數(shù)調(diào)用關(guān)系,解析為圖結(jié)構(gòu),通過對代碼圖譜的分析,能夠快速的發(fā)現(xiàn)潛在的安全風(fēng)險。此外,我們對檢測出來的漏洞信息也會給與詳細(xì)的解釋,告訴開發(fā)者每個漏洞在代碼中是怎么一步步帶來影響的。

當(dāng)我們提交完代碼后,云效Codeup 能自動執(zhí)行已開啟的代碼檢測,比如視頻中已開啟的依賴包漏洞檢測,我們也可以手動開啟源碼漏洞檢測。

依賴包漏洞檢測能發(fā)現(xiàn)眾多三方包漏洞,會在詳細(xì)信息中展示疑似的CVE漏洞信息;源碼漏洞檢測能發(fā)現(xiàn)代碼注入、遠(yuǎn)程命令執(zhí)行、緩沖區(qū)溢出等安全漏洞,并且會在詳細(xì)信息的右側(cè)展示漏洞在代碼中的影響路徑。

我們可以在依賴包漏洞的詳細(xì)信息中,通過一鍵創(chuàng)建代碼評審,幫助我們快速的生成修復(fù)指定漏洞的代碼變更及其合并請求,評審描述中會提供漏洞的解釋信息以及升級包的兼容性分析。

03/ 代碼智能技術(shù)的不斷探索

除了上面介紹的已經(jīng)落地到云效的智能化能力,我們與浙江大學(xué)、莫納什大學(xué)、南洋理工大學(xué)等高校在代碼生成、代碼搜索、智能評審等領(lǐng)域進行了深入的合作,在多個領(lǐng)域產(chǎn)出了論文和專利。

比如,我們與南洋理工大學(xué)合作的代碼摘要生成項目,很多時候開發(fā)者不太喜歡寫注釋,或者不知道怎么寫注釋,導(dǎo)致代碼的可維護性不高,為了幫助開發(fā)者更好的理解代碼,我們期望通過對代碼邏輯的學(xué)習(xí)和理解,自動生成出代碼片段的摘要注釋。我們會先從代碼大數(shù)據(jù)中挖掘出一批代碼的片段及其注釋,構(gòu)建代碼片段檢索庫,然后從檢索庫中找到與目標(biāo)代碼相似的代碼片段,并且將目標(biāo)代碼和相似的代碼片段都解析成CPG圖結(jié)構(gòu),我們會基于注意力機制通過融合算法將兩個圖結(jié)構(gòu)融合在一起,然后經(jīng)過圖權(quán)重的靜態(tài)計算及動態(tài)計算,并通過模型獲得對圖信息的編碼數(shù)據(jù),最后,將相似代碼片段的摘要注釋進行編碼后,與圖結(jié)構(gòu)的編碼信息聚合在一起,通過解碼器就能生成目標(biāo)代碼的摘要注釋。相關(guān)論文《RETRIEVAL-AUGMENTED GENERATION FOR CODE SUMMARIZATION VIA HYBRID GNN》。

開發(fā)者花費時間比較多的地方除了寫代碼,就是調(diào)試代碼,我們期望通過代碼缺陷定位去輔助開發(fā)者排查缺陷。代碼缺陷定位會先從代碼變更數(shù)據(jù)中,挖掘出有效的缺陷代碼作為訓(xùn)練集,并且將缺陷代碼解析成抽象語法樹,然后將抽象語法樹按代碼行進行拆解,每一行代碼對應(yīng)一個子語法樹,將子語法樹從葉子節(jié)點到根節(jié)點編碼成多條子路徑,最后,將每行代碼關(guān)聯(lián)的子路徑放到基于注意力機制的深度學(xué)習(xí)模型中進行訓(xùn)練。當(dāng)需要代碼缺陷定位時,開發(fā)者提交代碼后,我們會從代碼變更中抽取出變更代碼行的子路徑,通過模型推理,我們就能得到每行代碼的缺陷概率,從而輔助開發(fā)者排查缺陷。

除了上面提到的兩個合作項目,我們與各個高校在多個領(lǐng)域進行了廣泛的合作。我們期望在不久的將來,開發(fā)者能在云效的智能化研發(fā)平臺上,只需要提供文字描述或需求文檔,我們就能為其生成出大部分基礎(chǔ)代碼及其依賴項,并能通過智能編碼輔助快速的完成代碼填充,代碼缺陷也將無處遁形,期望大家可以保持對云效產(chǎn)品動態(tài)的關(guān)注。

責(zé)任編輯:梁菲 來源: 阿里云云棲號
相關(guān)推薦

2018-11-13 10:40:01

區(qū)塊鏈汽車大數(shù)據(jù)

2024-08-02 17:19:36

2017-01-10 19:06:39

Android日常開發(fā)技術(shù)經(jīng)驗

2023-05-17 08:34:27

開發(fā)技術(shù)應(yīng)用

2018-04-10 15:34:44

2018-08-15 14:59:49

2010-03-15 14:03:37

CloudSwitch遷移應(yīng)用到云端

2017-09-25 15:49:01

2022-06-26 09:56:50

HttpUtil工具類模式

2010-07-02 15:58:35

BlackBerry開

2017-09-06 12:42:45

AndroidGradle開發(fā)技巧

2012-02-10 09:38:48

JMP工業(yè)工程

2023-12-12 16:46:44

AI云團隊云管理

2018-02-05 00:02:48

WANSDN網(wǎng)絡(luò)

2017-02-28 08:48:11

科技早新聞

2025-01-15 09:00:20

2022-12-19 08:30:51

ViteWebpack

2019-11-12 09:28:10

區(qū)塊鏈技術(shù)應(yīng)用程序

2010-03-16 15:38:57

Python串口
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91免费在线 | 四季久久免费一区二区三区四区 | 五月婷婷导航 | 成人高潮片免费视频欧美 | 五月婷婷中文 | 亚洲天堂久久 | 怡红院成人在线视频 | www日韩欧美| 成人免费淫片aa视频免费 | 国产精品久久久久久久岛一牛影视 | 在线免费观看成年人视频 | 亚洲一区日韩 | www.激情.com | 国产精品99一区二区 | 亚洲精品一区二区网址 | 国产一区二区在线免费观看 | 国产视频一区二区在线观看 | 欧美精品一区免费 | 999精品在线| 国产精品欧美一区二区三区不卡 | 久久久久久久久久久丰满 | 一区二区三区视频在线观看 | 国产精品自在线 | 日日操日日干 | 亚洲国产成人精品女人久久久 | 欧美中文字幕在线 | 亚洲精品电影在线观看 | 美女视频一区二区三区 | 日韩视频在线一区二区 | 中文字幕成人av | 亚洲一区二区三区 | 久久久91精品国产一区二区三区 | 4hu最新网址 | 一级欧美黄色片 | 91影库 | 日本久久网 | 日本a网站| 精品少妇一区二区三区日产乱码 | 成人在线精品视频 | 精品日韩一区二区 | 欧洲一区在线观看 |