儘管工程師用代碼創造了AI,但AI又能夠對這些代碼點評一番、甚至修復Bug,工程師和AI的關係正在變得微妙。測試
4月18日,2019阿里巴巴研發效能峯會——「83行代碼挑戰賽」決賽現場引入了一位「AI評委」,和專家評委、大衆評委配合,對選手提交的的代碼作綜合評價,這也是全球代碼比賽中出現的首位AI評委。debug
圖爲83行代碼挑戰賽決賽現場排行榜,AI評委、大衆評委、專家評委給選手打分blog
這場面向阿里3萬多名工程師的技術大會旨在進一步提高內部的研發效率,而「83行代碼挑戰賽」能夠說是阿里巴巴史上最大規模的代碼品鑑會。比賽源自1年前阿里內網一次集體曬83行代碼的活動,阿里巴巴集團CTO張建鋒、螞蟻金服CTO程立,甚至馬雲、彭蕾都有參與。開發
這位AI評委運行在雲端,當選手提交代碼後,會從靜態分析、運行時分析、羣體共性等不一樣維度對代碼快速打分。比賽現場,大屏實時顯示選手分數,隨着AI評委、專家評委、大衆評委的分數依次出現,分數排行榜會根據綜合打分實時滾動,一個邏輯語言的處理甚至可能瞬間提升選手排名。部署
結合現場專家和大衆評委的觀點來看,AI評委的評分至關準確,且打分最爲迅速,幾乎是在代碼提交後馬上出現結果。get
AI評委是誰?io
這位AI評委來自阿里巴巴代碼平臺研發的人工智能系統,其中最重要的一環是集成了Precfix(Patch Recommendation by Empirically Clustering),不依賴測試用例、編譯結果,經過非規則化的智能掃描,便可自動定位代碼中的Bug,並提供修復建議,速度可達毫秒級,且誤報率低。編譯
圖爲AI評委給出的選手打分,Precfix定位了代碼中的缺陷,並給出修復建議社區
Precfix可以發現一些規則檢查和人工評審都沒法發現的缺陷,根本性地提高代碼質量,有效減小開發工程師debug及代碼評審時間。同時,Precfix提供的修復建議,能幫助工程師快速理解缺陷和解決問題。
圖爲工程師根據Precfix提供的修復建議修復了缺陷
目前,Precfix已被部署到阿里巴巴代碼生產環境,用於缺陷檢查。工程師寫好代碼,就提交到線上,Precfix會進行review,指出缺陷代碼及相應的修復建議。
據一位工程師透露,過去人工review代碼查找bug可能須要幾小時甚至幾天時間不等,而如今不用一杯咖啡的時間,Precfix就能夠review完提交的所有代碼,提升了至少20%效率。
將來,Precfix還會隨着阿里代碼平臺的上雲,一塊兒爲全球開發者服務。
原文連接 本文爲雲棲社區原創內容,未經容許不得轉載。