沃尔玛实验室开源项目一览
众所周知,沃尔玛是世界第一大零售商;但少为人知的是,沃尔玛有一个实验室: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 一篇名为《沃尔玛:从大卖场巨人到电商创新者》的文章中,记述了沃尔玛面对威胁做出的改变,沃尔玛实验室的成立,就是其中之一。