企業(yè)的IT基礎(chǔ)架構(gòu)中的應(yīng)用包含數(shù)百萬行代碼,如何確保代碼的質(zhì)量和效率非常重要,因為即使幾行代碼中的錯誤和效率問題,對于應(yīng)用程序的代價都很昂貴。
AWS在2019年底推出了Amazon CodeGuru云服務(wù)的預(yù)覽版,現(xiàn)在該云服務(wù)已全面可用。CodeGuru是一項代碼審核服務(wù),能夠幫助程序員利用機器學(xué)習(xí)自動檢查代碼中的錯誤,并給出修復(fù)建議。
AWS表示,對于程序員而言,每天編寫大量代碼,而代碼審核需要經(jīng)驗豐富的程序員,以及足夠的時間來進行審核,而更大的挑戰(zhàn)在于,被遺漏的bug,導(dǎo)致應(yīng)用程序的錯誤和性能問題。
據(jù)介紹,Amazon CodeGuru包含兩個單獨的工具,CodeGuru Reviewer和CodeGuru Profiler,前者用來發(fā)現(xiàn)代碼錯誤并提供建議,后者用于優(yōu)化代碼。
CodeGuru Reviewer的機器學(xué)習(xí)算法已經(jīng)過GitHub托管的10000多個開源項目的代碼訓(xùn)練,而且算法也在隨著時間的發(fā)展不斷改進,因為開發(fā)人員可以留下有關(guān)發(fā)現(xiàn)的錯誤和提供的建議的反饋。
AWS介紹,程序員或開發(fā)者必須將要檢查的代碼提交到存儲庫,如GitHub,Bitbucket Cloud或AWS CodeCommit中。然后,CodeGuru Reviewer會分析代碼,查找錯誤,并為它們提供潛在的修復(fù)程序,這些都是在代碼存儲庫中完成的,因此,如果程序員使用GitHub,CodeGuru將創(chuàng)建一個拉取請求,并添加一條注釋,其中包含有關(guān)已找到的錯誤及其建議。
CodeGuru Profiler可以幫助程序員優(yōu)化效率低下的代碼,它可在在AWS Lambda和AWS Fargate等無服務(wù)器平臺上使用。此外,CodeGuru Profiler還能將估算的成本加到它找到的所有未優(yōu)化的代碼行中。
據(jù)悉,目前已有不少企業(yè)已經(jīng)在使用CodeGuru來發(fā)現(xiàn)錯誤并優(yōu)化其代碼,客戶Atlassian表示,Amazon CodeGuru的連續(xù)分析功能,將他們的代碼審核時間從幾天縮短到幾小時,甚至是幾分鐘。