原文鏈接:http://www.jianshu.com/p/474ec4ce8ce3
著作權歸作者所有,轉載請聯系作者獲得授權,並標注“簡書作者”。
Facebook為了爭當開源第一大廠,已經把自家很多好東西都拿了出來貢獻給開源世界,在開源之路上一騎絕塵,根本停不下來。
Facebook開源項目涉及的領域有移動工具多樣化、大數據、客戶端web庫、后台運行時和基礎設施,還有通過開放計算項目涉及到的服務器和存儲硬件等等。Facebook的GitHub賬戶有274個代碼庫,收到了39000次fork、提交了79000個commit,擁有242000個關注者……
下面是Facebook最受歡迎的15個開源項目。
移動開發
Buck
Buck是一個高性能的安卓編譯系統。此系統鼓勵用戶創建由代碼和資源組成的可復用的小模塊。因為安卓應用主要是用Java寫的,Buck也是一個Java編譯系統。
Rebound
Rebound是一個模仿彈簧動力學的Java庫。回彈彈簧模型可以用來創建動畫,通過將真實物理世界引入到你的應用可使動畫更自然。回彈使用相同的彈簧常數,就像Origami使得折紙交互模型很容易被轉換到安卓應用中。
Origami
Origami是用來設計現代用戶界面的工具。可以迅速的創建原型,運行在你的iPhone或iPad上並進行迭代,將可用的代碼片段輸出給工程師。
Stetho
Stetho是一個全新的安卓平台調試工具。Stetho提供C/S協議,使強大的Chrome開發者工具能在應用程序中使用該協議。你的應用程序整合之后,只需訪問chrome://inspect ,點擊“檢查”即可開始。
Infer
Infer是一個靜態分析工具,用來檢測安卓和蘋果系統應用發布前的缺陷。如果你給Infer一些Objective-C,Java或C代碼,它會生成一個潛在的缺陷列表。Infer工具也有助於防止系統崩潰和性能下降。Infer的目標是空指針異常、資源漏洞、內存溢出之類的致命缺陷。
Web開發
React Js
React Js是個用於構建用戶界面的JavaScript庫,高效且靈活。很多人把React當作MVC中的V來用,因為React不依賴你技術棧里的其它技術,因此很容易把它用在一些已有項目的小特性上。
HHVM
HHVM是個開源虛擬機,設計目的是用來執行Hack和PHP寫的程序。HHVM用即時編譯方式實現卓越的性能並保持了PHP的開發靈活性。和Zend PHP5.2相比,HHVM為Facebook實現了超過5倍的產能提升。HipHop通常作為一個獨立的服務器運行,同時替代Apache和modphp,它也可以在命令行運行單獨的腳本。
Flux
Flux是Facebook用戶創建客戶端web應用的應用架構。利用一個單向的數據流,Flux補充了React的組合視圖組件。它更像是一種模式,而非正式框架,不用寫太多新代碼就能直接使用Flux。

Flow
Flow給JavaScript添加了靜態類型,提高開發者的效率和代碼質量。Flow的目標是減少程序員花在查找JavaScript錯誤上的精力。Flow很大程度上依賴類型推斷來查找類型錯誤,即使代碼中並未標注——它像流經程序一樣精確的跟蹤變量的類型。
fb-flo
fb-flo是Chrome的延伸,可以不重新加載而修改運行的應用。它能輕易和你的系統、開發環境實現整合,可以和你喜歡的編輯器一起使用。
Jest
Jest是一款JavaScript的單元測試框架。它建立在Jasmine測試框架之上,使用我們熟悉的expect(期望)和toBe(實際值)。它自動模擬require()返回的CommonJS模塊,使得大部分現有代碼可測試。
Nuclide
Nuclide是一套Atom包,為許多編程語言和技術提供編輯功能。設計目的是為了在整個公司為工程師提供一套標准的開發者經驗——無論他們從事純iOS應用,React和React Native代碼,或者在Hack運行我們的HHVM網絡服務。
后端開發
Presto
Presto是開源的分布式SQL查詢引擎,適用於運行交互式解析查詢,數據量支持從GB到PB。Facebook用Presto進行交互式查詢,用於多個內部數據存儲,包括300PB的數據倉庫。每天有1000多名臉譜網員工用Presto執行超過30000次查詢,掃描超過1PB數據量。
Osquery
Osquery提供一個SQL接口,用來嘗試新的查詢和監控操作系統。它擁有一套完整的SQL語言和許多有用的內置表,Osquery對於執行事件響應、診斷系統操作問題、排除性能故障是非常出色的工具。它也允許開發人員和系統管理員部署安全工具。
RocksDB
RocksDB基於LevelDB,可運行在多CPU內核的服務器上,高效使用快速存儲,支持IO綁定,內存和一次寫負載,並且非常靈活。