食人魚的菜單上一般沒有代碼,但今天說的這種魚卻有所不一樣。git
Uber 開源了一款自動化工具,名爲 Piranha(意爲:食人魚),該工具可以自動從應用程序代碼庫中刪除過期的和未使用的代碼。github
根據 Uber 官方博客的介紹,在Uber,工程師們使用功能標記來自定義咱們的移動應用執行,爲不一樣的用戶組提供不一樣的功能。這些標誌容許例如在運營的不一樣區域中本地化用戶的體驗,更重要的是,逐步向用戶推出功能並嘗試使用同一功能的不一樣變體。安全
可是,在某項功能已 100% 推廣給用戶或實驗性功能被認爲不成功以後,代碼中的功能標誌就過期了。這些非功能性特徵標誌表明技術負擔,使開發人員難以在代碼庫上工做,而且可能使應用程序臃腫,須要進行沒必要要的操做,這些操做會影響最終用戶的性能並可能影響總體應用程序的可靠性。 工具
對於工程師而言,消除這些「債務」可能會很是耗時,從而阻止他們開發新功能。性能
爲了使該過程自動化,Uber 開發了 Piranha,該工具可掃描源代碼以刪除與過期或過期的功能標誌相關的代碼,從而使代碼庫更乾淨,更安全,性能更高且更易於維護。spa
目前爲止,Uber 已經實現了用 Piranha 來重構 Objective-C、Swift 和 Java 程序。接下來,Piranha 有可能會擴展至更多語言(例如 Kotlin,Go 等),同時 Uber 也號召更多開發人員來一塊兒爲它作出貢獻。blog
Piranha 項目博客:
https://eng.uber.com/piranha/GitHub 地址:
https://github.com/uber/piranhaip