程式通常會隨著時間越來越肥、越來越慢、越來越難維護,造成維護成本提高,臉書(Facebook) 的 Messenger 看來也是如此,但是 Facebook 花了不少時間來整個重構、翻寫整套程式架構,讓程式碼減少84%,執行檔只有原先 1/4 大小,速度比舊版快2倍。
Facebook 重構 iOS Messenger 程式碼少100多萬行
Facebook 公開說明 iOS Messenger 如何更快、更小、更簡化,官方文章懶得看內容的,看圖就可以了解大概做了哪些事情。
原文:Project LightSpeed: Rewriting Messenger to be faster, smaller, and simpler
講簡單點就是把共用的抽出來,然後能用系統原生功能的,就不要自己寫。
通訊軟體的容量大小比較(2020/3)
- FB Messenger 142.6M
- LINE 254.6M
- Hangout 102.4M
- WeChat 266.1M
- Feebee 40.9M
- Google Home 261.6M
- Facebook 226.3M
下述摘錄自此篇:臉書重建iOS版Messenger,程式碼從170萬行縮減到36萬行
- iOS Messenger 的程式庫改造原則包括,盡量利用原生作業系統的功能,藉由 SQLite 的動態範本重覆使用 UI,以 SQLite 作為通用系統,以及建置一個能夠介接程式與伺服器功能的伺服器代理人
- 新版 iOS Messenger 的程式碼數量,從170萬行減少到36萬行,整整少了84%,而它的執行檔大小則只有原先的1/4,在Messenger功能未縮水的狀態下,光速專案還 Messenger的啟用速度,達到舊版的兩倍快。
- 總之,只要作業系統能做的,臉書就把它們交給作業系統,只有在iOS無法滿足需求時,才會撰寫小程式來彌補。