由線上支付服務Stripe打造的程式語言Ruby的類型檢查工具Sorbet,現在宣布開源。由於Stripe中絕大多數的程式碼都是由Ruby撰寫而成,因此為了檢測程式碼中存在的類型不一致問題,造成潛在的安全性風險,歷經一年半開發了Sorbet,現在結束實驗階段並正式對外開源。

開發者會在程式中定義變數的類型,以及函式回傳的類型,而在很多時候,開發者會撰寫出不連貫的程式碼,像是在字串類型變數使用Map方法,這樣的情況會讓程式發生異常,而在動態類型程式語言,這類錯誤需要在執行期間才會引發問題,類型檢查工具能夠分析程式碼,幫助開發者找出有問題的地方。

由於Ruby擁有鬆散的語法以及猴子修補的特性,雖然可以讓開發者快速地拼湊出功能強大的應用程式,但是程式碼也會產生許多有疑義或是混亂的狀況,而Sorbet就是要用來解決這個問題,增加Ruby程式碼的穩定性以及清晰度。

Stripe現在釋出的Sorbet專案包含了核心靜態檢查工具、創建Sorbet專案的工具,幫助開發者逐步採用Sorbet的工具,還有用於編寫類型註解的Runtime DSL,以及共享Ruby套件類型定義的中央儲存庫。

Sorbet同時具有靜態和動態的類型檢查功能,開發者可以使用命令列工具操作Sorbet,靜態地分析專案,以找出程式碼中潛在的錯誤,另外,也能使用Sorbet Runtime工具,這是一個Ruby套件,能夠在程式碼執行時動態檢測類型。Stripe現在開源Sorbet,同時也呼籲開發者可以加入貢獻的行列,幫忙回報並且修補臭蟲。


Advertisement

更多 iThome相關內容