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