Facebook如何编程:扎克伯格亲自把关代码更新

位于导语:,的美国科技博客网站BusinessInsider今天撰文揭开了脸书程序员的神秘面纱 。脸书代码从编写开始到最终发布都有极其严格的程序,CEO马克扎克伯格甚至亲自检查NewsFeed的每一次代码更新,确保没有错误 。

扎克伯格在工作

脸书工程师是这个社交网络巨头最有价值的财产 。他们有很大的自主权,但也面临着尽快发布高质量代码的压力 。

谷歌员工李易(YeeLee)通过与大量脸书工程师交谈,在一篇博客文章中披露了脸书代码的发布过程 。虽然脸书对代码发布的监管比人们预期的更严格,但这一过程确实与外界之前的想法几乎相同 。虽然这篇博文是一年前发表的,但似乎自脸书上市以来,整个过程并没有太大变化 。

脸书的员工主要由工程师组成,最大的两个团队是工程部和运营部,约占脸书员工总数的一半 。此外,脸书还有大量的产品经理 。他们想确保代码按时发布 。每个产品经理负责7到10名工程师 。

所有脸书工程师都必须接受4到6周的培训,学习脸书修复漏洞的方法,并听取高级员工的讲座 。大约10%进入新兵训练营的工程师将无法通过测试,最终被解雇 。

接受培训后,工程师们开始联系脸书数据库 。他们可以随意检查代码并对数据库进行更改 。员工还会得到一份“禁止事项”清单,比如禁止共享用户数据 。然而,脸书已经采取了一系列措施来防止这种事情发生 。

像谷歌一样,脸书的企业文化也由工程师主导 。一位工程师说:“产品经理在这里基本上什么都不做 。”工程师可以对尚未正式上市的产品进行规格修改,随时提出新的功能思路 。

工程师将在不同团队的每月例会上展示他们的成果 。产品推广经理和产品经理会参加这些会议,但不鼓励他们畅所欲言 。“如果产品经理在例会上畅所欲言,工程师们会对领导做出回应,说‘上次会议他们对产品的意见太多了’ 。”

在脸书,工程师们想做什么基本上取决于他们 。他们会找到主管说:“这是我想做的五件事 。”产品经理会说服工程师现场试一试,让他们自己体验这些项目的效果,但大多数时候不会干涉每个工程师的喜好 。

工程师不会争论某个功能是否值得尝试,而是开发一个原型 。接下来,工程师将花费一周时间开发某个功能并进行测试,以确定是否值得推出成品 。通常,新功能由脸书员工自己测试 。整个过程由一个名为gateway的应用程序控制 。这是脸书“黑客”文化的主要组成部分 。——快速开发和推出产品,淘汰没有市场前景的产品 。

在脸书,每个人都想参与后端产品的开发 。可扩展性和基础设施是工程师最感兴趣的两个问题 。因此,工程师很难对实时消息等前端产品感到兴奋 。相反,大家都想搞新闻Feed算法等后端产品 。这种做法与其他消费科技企业的做法背道而驰,员工希望参与前端产品的研发 。

脸书创始人兼首席执行官马克扎克伯格将亲自检查新闻提要的每一次代码更新 。在脸书,所有主要的升级代码都必须经过强制评估,任何更改都必须由至少一个人检查 。然而,工程师对新闻提要所做的任何更改都将由扎克伯格本人检查 。

脸书工程师负责测试产品功能、修复产品漏洞以及发布后的产品维护,但他们不是官方的质量保证团队 。然而,脸书仍然有工程师负责质量评估,并积极鼓励每个工程师报告产品漏洞 。

通常,代码升级每周二发布 。脸书有一个特殊的评估工具来告诉工程师代码更新的风险有多大 。

运营团队将逐步引入代码更新 。脸书大约有6万台服务器,运营团队会逐步将更新后的代码发布到少数几台服务器上,以确保能够正常工作 。起初有6台服务器,后来数量逐渐增加 。如果需要修改,这项工作将由提交代码更新的工程师离线完成 。修复工作完成后,代码将在这六台服务器上再次尝试,然后添加到更多的服务器上 。

【Facebook如何编程:扎克伯格亲自把关代码更新】 在代码更新发布期间,运营团队会通过IRC等实时聊天工具,一对一告知工程师他提交的代码是否需要修改 。如果修复后的结果仍然令操作团队不满意,工程师将被“公开羞辱” 。虽然李没有提供这方面的具体细节,但他表示,如果这种情况经常发生,工程师将被解雇 。

    推荐阅读