歡迎您光臨本站 註冊首頁

Facebook 開源 Haskell 程式碼重構工具 Retrie

←手機掃碼閱讀     admin @ 2020-07-09 , reply:0

Facebook 開源了 Haskell 程式碼重構工具 Retrie,該工具能夠使程式碼重構的過程更輕鬆、速度更快,也能夠令重構後的程式碼更加安全。Retrie 擁有重寫表示式、型別和模式的功能,還具有重寫指令碼和附加條件的能力,幷包含一個用於編寫更高階重寫指令碼的庫。

根據 Facebook 給出的資訊,開發者可以利用 Retrie 重新編寫超過 100 萬行的大型程式碼庫,並且是使用 Haskell 語法的方程式,而非正規表示式,以避免出現大型類別的重構錯誤。

程式碼重構對改善程式碼庫的總體設計來說很有必要,但這一過程也十分繁瑣且耗時。因此,Facebook 表示,重構工作通常手動完成,增量也較小,這樣才能儘可能地防止錯誤。然而,隨著程式碼庫大小的增長,這種方法會越來越行不通,必須依靠工具的輔助。

重構工具可粗略地歸為兩類:一類是查詢和替換字串操作工具,例如 sed,這類工具速度很快,但是很難表達複雜的重寫概念;另一類是用於解析和處理抽象語法樹(AST)的工具,這類工具功能較為強大,但需要的領域知識更廣泛,與前一類工具相比來說,速度也較慢。

此次新開源的 Retrie 則介於這二者之間。與使用複雜的正規表示式或 AST 遍歷相比,使用 Haskell 語法以方程式進行重構更加容易。Facebook 還介紹說,由於方程式比正規表示式更強大,並且可以編寫指令碼,因此 Retrie 比單獨的字串替換更好用。同時,Retrie 能夠利用多種解析技術,有效地縮小匹配專案的搜尋空間,比經典的 AST 操作工具要快。

Retrie 此前已在現實中得到了應用。Facebook 有一個名為 Sigma 的反規則濫用引擎,用來阻止垃圾郵件、網路釣魚攻擊和惡意軟體。為了應對不斷增長的資料規模和漸趨複雜的規則,Facebook 在 2015 年將 Sigma 遷移到了 Haskell 上,這次遷移正是通過 Retrie 來進行,Facebook 稱它“快速又安全”。


[admin ]

來源:OsChina
連結:https://www.oschina.net/news/117037/facebook-open-sources-retrie
Facebook 開源 Haskell 程式碼重構工具 Retrie已經有177次圍觀

http://coctec.com/news/soft/show-post-242010.html