“安利”一款debug神器:在AI面前,bug都不是事兒
作者 | 琥珀
出品 | AI科技大本營(公眾號ID:rgznai100)
為了幫程式設計師解決 bug 問題,Facebook 可算是操碎了心!
你可以這麼想,如果在開發和測試階段沒有發現 bug 問題,那麼 bug 將會隨著產品釋出,在生產環節觸發,其後果將視情況而定。
不久前,一支來自 Facebook 的工程團隊斬獲了 ACM SIGPLAN POPL 最具影響力論文獎,這是機器學習研究社群最受關注的獎項之一。其獲獎論文為“Compositional Shape Analysis by Means of Bi-abduction”,介紹了一款利用機器學習除錯 bug 的工具“Project Infer”背後的科學原理。
為了“安利”這款工具,一位名叫 Jesus Rodriguez 的程式設計師特意撰文詳解了 Infer 的工作流程和科學原理。
文中指出,Infer 基於兩種新的數學技術:分離邏輯(separation logic)和雙向假說推理(bi-abduction)。
傳送連結:https://towardsdatascience.com/machine-learning-for-detecting-code-bugs-a79f37f144b7
據悉,Infer 是 Facebook 旗下一款開源的靜態分析工具,其前身來自被 Facebook 收購後的 Monoidics。官網介紹,Infer 可以分析 Objective-C,Java 或 C 語言程式碼,報告潛在的問題。
截止目前,Infer 已在 GitHub 上獲得 9300+ Star,並被 AWS、Spotify、Uber 等公司採用。
GitHub 連結:https://github.com/facebook/infer
實際上,此前 AI科技大本營(ID:rgznai100)就曾報導過類似的 bug 檢查工具,如 Google 剛剛開源的自動化檢測工具 ClusterFuzz,印度小哥 Gaurav Arora 開發的程式碼測試工具 code-with-ai,以及一鍵程式碼修復神器 The fuck。
值得一提的是,從發現 bug 到修復 bug,Facebook 有一套完整的流程。Facebook 去年新推的工具 SapFix,以及已投入大規模使用的 Sapienz,都是與 Infer 相輔相成的:
首先,靜態分析工具 Infer,會幫助定位程式碼中需要修補的點;一旦 Sapienz 和 Infer 精確定位與崩潰相關的特定程式碼部分之後,就會將該資訊傳遞給 SapFix;最後,SapFix 會參考幾種不同的策略,自動生成補丁。
Infer 主要應用基於 Android 和 iOS 的移動應用程式釋出之前,檢測其程式碼中的 bug。
溫馨提示:程式設計師們可能習慣了熬夜敲程式碼,但有人就總結過:不提倡加班寫程式碼,那樣會導致 bug 率直線上升。
(本文為AI科技大本營原創文章,轉載請微信聯絡 1092722531)
精彩推薦推薦閱讀:
點選“閱讀原文”,開啟CSDN APP 閱讀更貼心。
相關文章
- 安利一款萬能抓包神器:Fiddler Everywhere
- 在AI面前,Rapper要率先失業了?AIAPP
- 給你安利一款魯班大叔開發的maven依賴搜尋神器Maven
- 一張圖理清計算機常見編碼的關係。ASCII、Unicode都不是事兒計算機ASCIIUnicode
- GitHub Star 過萬,這款神器必須安利!Github
- 最近爆火的帥小夥丁真在AI面前顏值多少分?AI
- 日本Gal廠商在DMM上的那些事兒
- 測試在專案流程中的那些事兒
- PHP那些事兒PHP
- Redis那些事兒Redis
- babel那些事兒Babel
- 給你安利一款國產良心軟體uTools
- 安利一款很棒的Linux程式碼編輯器Linux
- 我一定要給大家安利這款解壓神器《Townscaper》
- 一款 macOS 全能效率神器Mac
- 安利一款超級好用的 Dubbo 除錯工具 Apifox除錯API
- https的那些事兒HTTP
- webpack的那些事兒Web
- AI在用 | 一款AI影片換臉神器,讓安吉麗娜·朱莉秒變「女版」馬斯克AI馬斯克
- 如何做好一款重製遊戲:「炒冷飯」背後的那些事兒遊戲
- 推薦一款 MySQL 命令列神器MySql命令列
- MySQL優化那些事兒MySql優化
- 網路安全那些事兒
- Eval家族的那些事兒
- 面試那點事兒面試
- PostgreSQL的那點事兒SQL
- 說說RCE那些事兒
- C語言那些事兒C語言
- PHP 閉包那些事兒PHP
- 字元編碼那些事兒字元
- 在Intellij IDEA中使用DebugIntelliJIdea
- 給大家安利一款我開發的VSCode多語言外掛VSCode
- Debug神器!一條SSH隧道穿透全部伺服器所有埠穿透伺服器
- 聊聊 Netty 那些事兒之 Reactor 在 Netty 中的實現(建立篇)NettyReact
- 「iSlide」一款PPT輔助設計神器IDE
- 雲原生java的那些事兒Java
- util.promisify 的那些事兒
- 「前端那些事兒」④ 效能監控前端