Uber對外開源可自動刪除過時程式碼的工具Piranha,當用戶的Java、Swift或Objective-C專案大量使用功能旗標(Feature Flag),並且以特定API來控制旗標行為,就能使用Piranha來自動清除專案中,老舊功能旗標的相關程式碼。

功能旗標是一種軟體開發技術,讓開發者隱藏、啟用和停用應用程式中的特定功能,功能旗標使功能在完成且正式發布之前,能獲得充分的測試。Uber大量使用功能旗標來客製化自家的行動應用程式,為不同的用戶群組提供不同的功能,像是對不同地區的用戶提供在地化功能,或是分階段逐步向用戶推出新功能。

當某項功能已經完全向所有用戶推出,或是實驗性功能被棄用後,程式碼中的功能旗標也就過時失效了,沒有作用的功能性旗標會成為技術債,使開發者越來越難以維護程式碼基礎,也會使應用程式過於肥大,執行一些不必要的運算,最終影響用戶操作應用程式時的體驗。

但要消除這些功能旗標也不是一件簡單快速的事,而開發人員花時間消除這些技術債的同時,也就代表他們無法把時間花在開發新功能等有產值的工作上。為了解決這個問題,Uber開發Piranha來自動化這個過程,Piranha能夠掃描原始程式碼,並刪除過時的功能旗標以及相關程式碼,維持乾淨的程式碼庫,使程式碼易於維護,也讓這些過時程式碼不會影響應用程式的效能。

Uber在Android和iOS應用程式的程式碼庫工作管線上執行Piranha,至今已經刪除了約2千個過時功能旗標以及相關程式碼。Uber表示,在程式碼庫中使用Piranha非常直覺,只要在屬性檔案中定義旗標相關的API以及預期行為,接著就能讓Piranha依名稱與行為,清除過時的功能旗標和相關程式碼。

目前Piranha已經對外開源,Uber提到,只要用戶的專案程式碼符合3個條件,就能有效地使用Piranha,首先,程式碼庫中廣泛地使用功能旗標,並以特定API控制功能旗標的行為,且以Java、Swift或是Objective-C程式語言實作而成的專案,皆可以使用Piranha。Piranha有許多新計畫正在進行中,像是改善Piranha產生的重構程式碼,還有要擴充Piranha以支援Kotlin和Go等其他語言的專案。


Advertisement

更多 iThome相關內容