沃爾瑪實驗室開源項目一覽
眾所周知,沃爾瑪是世界第一大零售商;但少為人知的是,沃爾瑪有一個實驗室:WalmartLabs,該實驗室在開源項目上有不少貢獻,并在 GitHub 上有主頁。這些項目中,大部分都與 Node.js 和 JavaScript 有關。
沃爾瑪實驗室的“關于我們”頁面上這樣介紹自己:
沃爾瑪實驗室以創新的方式融合零售、社交和移動技術,為世界上最大的零售商重新定義“商務”的含義。我們是一群業內最聰明的技術專家和商業人才。對于下一代“商務”將會帶給全球幾十億人的無限機會,我們感到十分興奮,并致力于幫助他們節省金錢,更好地生活。
沃爾瑪實驗室有兩位帶頭人,一位是 Jeremy King,是沃爾瑪的資深副總,兼全球電子商務首席技術官,他曾在 eBay 工作 7 年時間,擔任工程和軟件開發副總,并帶領團隊選型并落地了下一代應用平臺——“V3”,并領導過交易和欺詐工程團隊。他還主導設立了中國和印度的研發中心,也曾是 PayPal 整合團隊的核心成員。另一位是 Gibu Thomas,是移動和數字化資深副總。
在 GitHub 的主頁上,顯示沃爾瑪實驗室共有 41 個項目,有 11 名成員。下面簡單介紹下最活躍的幾個項目:
thorax:基于 Backbone 的應用框架,提供文件系統結構、按需模塊加載、模型和集合視圖綁定、繼承視圖和 DOM 事件、數據加載助手、表單序列號和驗證等功能。其中用到 Backbone、Underscore、Zepto、Handlebars、Stylus 和 Lumbar。
hapi:基于 Node.js 的框架,提供 restful 的 API 服務。hapi 以配置為核心,提供鑒權需求、輸入驗證、數據緩存和預加載等功能,并允許使用簡單的 JSON 配置對象。開發人員使用 hapi,可以將主要精力放在編寫可重用的業務邏輯上,而不是用來做其他方面的瑣碎事情。
joi:對象 schema 驗證系統。基于豐富的、描述性的 schema,驗證 JavaScript 對象。
hoek:node 實用工具。
lout:供 hapi 服務器使用的文本生成器,為使用路由配置的每個端點提供易于閱讀的指南。并允許對輸出的完全定制。
helmet:hapi 的交互調試控制臺。
FakeToe:XML 到 JSON 的轉換器。
log:hapi 的處理監控工具。
Flod:系統化工具集,用來評測和對比 Node.js web 服務器框架,允許開發人員對比不同版本的、自己的框架,以及其他人的框架。
catbox:多策略對象緩存服務。
上述這些工具,統歸在 Blammo 項目之下。
MUPD8:基于 MapReduce 風格的框架,實現 MapUpdate 框架,用來處理快速或流數據。
Lumbar:js 構建工具,使用一個通用的代碼庫,以及一個平臺列表,以產生模塊化的、特定于平臺的應用。可將其視為以平臺為目標的條件化編譯器。但它不使用源代碼中的變量,而是通過將文件與平臺關聯達到目的。使用一個 json 文件 lumbar.json 來描述項目的元數據。Lumbar 能與 Backbone 配合使用,允許對路由、模型、視圖和其他應用代碼分組,打包為獨立的 Javascript 和 CSS 文件,在遇到對應路由時,可以延遲加載。
Lumbar-tester:Lumbar 的單元測試插件。
在零售領域,沃爾瑪越來越感受到亞馬遜給它帶來的威脅。在 FastCompany 一篇名為《沃爾瑪:從大賣場巨人到電商創新者》的文章中,記述了沃爾瑪面對威脅做出的改變,沃爾瑪實驗室的成立,就是其中之一。