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