Facebook 是全球最大的社交网站,它的成长背后离不开开源力量。其开源项目负责人 James Pearce 介绍说,Facebook 从写下自己的第一行 PHP 代码开始,第一次使用 MySQL INSERT 声明语句开始,开源就已经融入到公司的工程师文化里面了。
Facebook 不仅取之开源,更是不断开源其内部项目,将内部成果反馈给开源社区,可以说,这才是一个伟大公司应有的态度。通过不断开源自己的产品项目,Facebook 吸引了大量优秀开发者为其工作。可以通过文章《后起之秀 Facebook 凭什么挑战互联网霸主 Google?》详细了解 Facebook 背后的开源力量。
当然,开源的项目不全是高大上,还有一些小型项目值得一看。下面我们一起了解下 2013 年 Facebook 的那些小型开源项目。
1. xctool
一款 Apple xcodebuild 的替代工具,可以让构建和测试 iOS 和 Mac 项目变得更加简单,尤其适合持续集成(Continuous integration)式的开发实践。
xctool 并是简简单单地进行替代,它还增加了一些新功能,如:
- 支持将构建&测试结果结构化输出
- 界面友好,支持 ANSI 彩色输出
- 速度更快,支持进行并行测试,使得运行速度提升2~3 倍
开源协议:Apache License 2.0
2. Buck
一款 Android、Java 构建工具,该项目的一个主要点就是放在了“提速 Android 构建过程”上。主要通过利用多核并行运行,保持跟踪无变化模块以减少重新构建时间等方式来达到减少总体构建时间的目的,具体可了解。
开源协议:Apache License 2.0
3. Rebound
一个 Java 动画库,Rebound 的弹簧模型(spring model)在应用程序中引入了现实世界的物理,创建的动画让人感觉很自然,可以用在滚动条、切换开关等场景下,可在项目主页中的 Demo 里面观察效果。
开源协议:BSD License
4. React
用于构建用户界面的 JavaScript 库,非常灵活,可与目前流行的库和框架一起使用,目前已经在 Instagram 及 Facebook 等网站进行了应用。
开源协议:Apache License 2.0
5. Regenerator
在 Node.js 中使用 generator ,最终会产生一堆无法在客户端执行的代码。所以,Facebook 团队开发出了 Regenerator,以替代 Node.js 中的原生 generator,让开发者写出更加干净、功能强大的代码。
开源协议:BSD License
6. Huxley
Web 应用程序 UI 测试工具,开发语言为 Python。Huxley 可以监控内容变化、进行屏幕截图,之后反馈给我们哪些地方进行了改动,对响应式设计测试也是可以的。
开源协议:Apache License 2.0
7. Presto
Facebook 的分布式 SQL 查询引擎,可用来进行高速、实时的交互式数据查询与分析。Presto 在 CPU 的性能和主要的查询性能上比 Hive/MapReduce 要好7~10 倍以上。每天,会有 1000 名 Facebook 员工使用 Presto 对 PB 级的数据进行扫描,运行查询 30000 次以上。除 Facebook 公司外,Airbnb 和 Dropbox 也都已经采用了 Presto。
开源协议:Apache License 2.0
8. RocksDB
RocksDB 基于 LevelDB 的嵌入式 key-value 存储类库,但提高了扩展性,可以运行在多核处理器上、有效使用快速存储,支持 IO 绑定、内存和一次写负荷。可查看极客头条的部分介绍。
开源协议:BSD License
9. Origami
无需编程即可通过 Origami 轻松创建交互设计原型。提示:Quartz Composer 是 Mac 下一款图形编程工具,专门用来生成各种动态视觉效果,包括可交互的界面原型。
该工具提供的查看器支持 Retina、支持原生全屏,当拖动图片时也会自动添加一个图层。同时,官方也给出了很多范例,帮助使用者学习该工具的使用。
开源协议:内容
原文链接:http://venturebeat.com/2013/12/20/here-are-facebooks-9-top-open-source-projects-from-2013/
译文链接:http://www.iteye.com/news/28603-facebooks-9-top-open-source-projects-from-2013