去年12月,亞馬遜在AWS re:Invent上啟動(dòng)了CodeGuru的預(yù)覽。作為一款借助機(jī)器學(xué)習(xí)技術(shù)來自動(dòng)檢查代碼錯(cuò)誤、并提出潛在優(yōu)化建議的工具,其現(xiàn)已正式向公眾開放。據(jù)悉,CodeGuru主要由代碼檢查其Reviewer和性能分析器Profiler兩個(gè)部分組成。
據(jù)悉,為了打造Reviewer代碼分析器,AWS團(tuán)隊(duì)借鑒了GitHub上超過一萬個(gè)開源項(xiàng)目的代碼、以及亞馬遜內(nèi)部代碼庫來訓(xùn)練其算法。
該公司在今日的公告中稱,即便是擁有經(jīng)驗(yàn)足夠豐富的開發(fā)團(tuán)隊(duì)的亞馬遜之類的大企業(yè),要利用空暇時(shí)間來進(jìn)行代碼審查,也是一項(xiàng)相當(dāng)大的挑戰(zhàn)。
由于每日要過目的代碼量很大,即便是經(jīng)驗(yàn)老道的審查員,也可能在面對(duì)客戶應(yīng)用程序代碼時(shí)有所遺漏,從而導(dǎo)致錯(cuò)誤和性能問題。
使用CodeGuru的時(shí)候,開發(fā)者可將其代碼放到GitHub、Bitbucket Cloud、或者AWS的CodeCommit等托管平臺(tái)上。然后Reviewer代碼分析器會(huì)嘗試查找潛在的錯(cuò)誤,同時(shí)給出相應(yīng)的修改建議。
所有操作都是在代碼存儲(chǔ)庫的上下文環(huán)境中完成,因此CodeGuru還將創(chuàng)建一個(gè)GitHub查詢請(qǐng)求(pull request),并在其中添加注釋。為了訓(xùn)練機(jī)器學(xué)習(xí)模型,用戶也可向CodeGuru提交一系列基礎(chǔ)反饋。
CodeGuru Application Profiler的任務(wù)有所不同,其旨在幫助開發(fā)者找出代碼中有哪些地方存在性能低下的問題,并且包括了對(duì)無服務(wù)器平臺(tái)的支持(比如AWS Lambda和Fargate)。
AWS表示,已有多家企業(yè)在預(yù)覽期間便開始使用CodeGuru,比如Atlassian、EagleDream和DevFactory。
AWS技術(shù)工程團(tuán)隊(duì)主管Zak Islam補(bǔ)充道:“當(dāng)我們檢測(cè)到生產(chǎn)中的異常時(shí),CodeGuru的連續(xù)分析功能,可將調(diào)查所需耗費(fèi)的時(shí)間從幾天縮短到幾小時(shí)、甚至幾分鐘”。
如此一來,開發(fā)者可將更多精力投入到提供差異化的功能上,并減少研究生產(chǎn)環(huán)境中的問題所浪費(fèi)的寶貴時(shí)間。