[021] 看 Code 說故事:Facebook Folly Library(一)

[021] 看 Code 說故事:Facebook Folly Library(一)

Facebook 在 2012 年公開其內部重度使用的 Folly C++ library。快速瀏覽過 Folly 原始碼,發現主要開發人員之一是我稱之為 Template-man 的 Andrei Alexandrescu,非人類。

Andrei Alexandrescu 有一本書叫《Modern C++ Design》,是我最初接觸 C++ Template 的書,當時看的是侯捷老師的中譯本《C++設計新思維》,看了好幾遍,每看一次都有不同的體會,受益良多,相當推薦,最好中英文版都買。

看過,讀過 Template-man 的影片與書,他老兄在 C++ Template 領域的鑽研恐怕無人能出其右。《Modern C++ Design》把 Policy-based C++ Programming 解釋地很好,不過畢竟是書本,不夠真實。Facebook Folly 開源了,可以看他老兄怎麼解決現實生活的問題,頗有趣。

所以,接下來我打算花一些時間「閱讀」Facebook Folly 的原始碼,理解其設計原理,進而增加一點經驗值。

Facebook C++ library 有個特色——不在乎 Windows 平台。以 Facebook 的專案特性來看,確實無 Windows 平台用武之地。大頭放出來的專案,應該會有人想要「移植」到 Windows 讓更多人使用。雖然有人嘗試,但在 Folly 官方版本中還是沒有支援。

所以,閱讀 Folly 的另一個可能達不到的目標是——Port Folly to Windows。由於 Facebook 根本不會有 Windows 平台的需求,我想這難度應該不低,會是不錯的挑戰。

不過,移植前必須先評估,究竟 Folly 值不值得移植,除了 Facebook 的需求外,其他專案能從中受益嗎?