非死book開源Nuclide項目
作為全球最大的社交網站,非死book與“開源”關系密切。 其開源項目負責人James Pearce曾公開表示 ,非死book不僅起源于開源平臺,也一直致力于建設一個完整的開源“棧”環境。 僅2014年,非死book就設立了107項開源項目 ,使其總的開源項目超過200個。通過開源項目的方式,非死book創建良好的生態環境,吸引了外界大量的優秀開發者為其工作。近日, 非死book 又 正式開源了Nuclide項目 。
其實,在相繼開源 Hack 、 HHVM 和 React Native 后,非死book就開始考慮Nuclide項目的開源工作。作為基于文檔編輯器Atom的軟件包庫,Nuclide提供了類似IDE的功能,主要用于簡化原生移動應用的開發。在項目啟動之初,非死book團隊就試圖尋找一個支持可再開發、開源的編輯器作為起點。GitHub去年開源的 Atom 在線文本編輯器正好滿足了該需求。Atom利用當前流行的web技術進行開發,允許用戶使用自己的React或者ES7。它提供了一個強大的原生 shell,能夠很好的集成移動平臺編譯器或者開發工具。而且,Atom針對多個語言都擁有完善的社區生態系統。最后,其豐富、可擴展的API支持用戶快速開發Nuclide定制的功能。因此,非死book最終選擇了Atom作為Nuclide項目的基礎。
那么,究竟什么是Nuclide呢?Nuclide就是一套基于Atom的軟件包庫,其 代碼托管在GitHub上 。由于沒有復制Atom編輯器的核心代碼,當前初始版本的Nuclide可以安裝在標準的Atom版本上,并支持用戶繼續使用除Nuclide外的其他社區軟件包。Nuclide的主要功能如下:
-
支持遠程開發
在非死book,網頁和后端工程師都會在遠程數據中心的服務器上進行工作。Nuclide支持用戶通過SSH連接到服務器上的輕量級節點daemon上,使得遠程文件編輯和語法/類型檢查成為可能。當然,這對于虛擬機同樣適用,用戶可以在HHVM上進行本地開發。
-
支持Hack編程語言
Hack的代碼庫是非死book最大的代碼庫之一。從一開始,Nuclide項目就考慮要支持Hack語言,包括了語法高亮、類型檢查、自動完成以及click-to-symbol特性等。
-
支持Flow JavaScript類型檢查器
對于本地和遠程的JavaScript開發,Flow引入了類型完整性和針對React組件及應用程序的快速反映能力。正如對Hack的支持,Nuclide支持@flow注釋文件的特定Flow裝飾和編輯器特性。
-
支持Mercurial分布式版本控制系統
非死book目前采用Mercurial作為主要的源代碼控制平臺。因此Nuclide需要支持Mercurial。對于本地和遠程開發,Nuclide支持文件樹中高亮的修改、書簽的設定以及只讀的diff瀏覽器。
-
支持一步到位的搜索
Nuclide包括了統一的搜索工具包,支持在一個大的多語言代碼庫中高效而迅速的尋找文件和符號。
非死book的軟件工程師Michael Bolin表示 ,非死book當前發布的軟件包將僅僅是一個起點。未來,非死book將會和社區開發人員合作進行包的迭代優化工作。此外,非死book還有更大宏達的計劃——統一的跨平臺開發者體驗。支持iOS、React以及React Native都是未來要實現的功能。而且,對于服務器和移動客戶端都十分重要的調試功能也是未來要添加的功能。Michael表示,正如Buck和 Infer項目一樣,Nuclide項目未來將會在功