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