[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 的需求外,其他專案能從中受益嗎?

Living in Taiwan. Dancing with C++ and C#. Playing Xamarin. Visual Studio is the most powerful IDE on earth. Learn what I am doing these days at: https://samtsai.org/now/