LXF: 你是怎么进入Facebook的? DR: 我在2009年加入到Facebook,工作内容是开源及标准。我的团队致力于使用、贡献、发布开源项目,使之对每个人变得容易的伟大工作。 有时,也意味着将我们融入到其他的工程师团队,比如我们在2010年发布的HiHop for PHP。虽然HipHop已经在Facebook内部得到验证,但是仍有大量的工作要做,使之成为其他网站的基础设施的有用的一部分。 LXF: HiHop具体是做什么的? DR: HipHop真正体现了我们如何在Facebook上创建开源。它一开始由赵海平创建,作为Hackathon项目,后来Iain Proctor和杨明辉加入。海平注意到PHP语法和C + +不少相似之处,而且知道你是否能改写成另一种编程。 2年半的时间,以及一些其他的工程师的加入,现在HipHop服务于Facebook绝大部分的产品。它需要我们的PHP源代码,转换成C + +中,并编译它成为一个独立的二进制文件,我们再在Web服务器上部署。 这是个Facebook如何开始项目的典型模式,1或2个人决定尝试一些事情,我们称之为“黑客文化”。 LXF: 你在OpenID和OAuth标准的工作,是否在Facebook继续使用? DR: 我们平台的工程师团队去年做了很多OAuth 2.0的工作。OAuth创建标准化API的设计模式,人们可以同意web站点准入而无需输入密码。虽然OAuth 1.0在过去的两年几乎在每个新的API中被使用,但它对于许多开发者来说还是过于复杂。 OAuth 2.0依赖SSL来保护访问令牌,当API请求对应HMAC签名时。这消除了大量的复杂性,因为开发者与您的API交互不再需要正常化、排序,然后签署他们的所有的HTTP请求的参数。 我们是第一家在f8平台上宣布将OAuth 2.0作为图形API一部分的,当4月份与IETF社区合作做了大量工作之后。同样在f8,我们引入了OGP开放图形协议Open Graph Protocol ( http://ogp.me ),,它使用一个非常简单的RDFa的框架子集来表示任何web页面作为社区图的一部分。 LXF: 人们认为Facebook是个闭源的站点。你又如何贡献开源? DR: Facebook工程师对于贡献Apache Hadoop生态系统,以及MySQL、PHP等,非常活跃。也创建了大量的功能使memcached规模部署在现代的硬件上。 但是,我们不仅是贡献其他项目或发布开发工具,我们开源了产品架构的全部原件。HipHop, FlashCache, Apache Hive and Cassandra, Thrift, Scribe, 以及其他在Facebook创建的。我不认为还有其他与我们一样规模的网络公司能做到这一点。 |