Facebook 重構 iOS Messenger 程式碼少100多萬行

程式通常會隨著時間越來越肥、越來越慢、越來越難維護,造成維護成本提高,臉書(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無法滿足需求時,才會撰寫小程式來彌補。

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料