在Facebook當程序員會是什么樣的
作者:網(wǎng)絡轉載 發(fā)布時間:[ 2012/8/14 10:19:26 ] 推薦標簽:
導語:美國科技博客網(wǎng)站 BusinessInsider 撰文揭開了 Facebook 程序設計人員的神秘面紗。Facebook 代碼從開始編寫到終發(fā)布,都有著極為嚴格的程序,CEO 馬克·扎克伯格(Mark Zuckerberg)甚至對 News Feed 每個代碼更新親自把關,確保不出現(xiàn)任何差錯。
工作中的扎克伯格
以下為文章概要:
Facebook 工程師是這家社交網(wǎng)站巨頭有價值的財產(chǎn),他們擁有非常大的自主權,但同時也面臨著盡快發(fā)布高質量代碼的壓力。
谷歌員工李易(Yee Lee)通過與大批 Facebook 工程師的交談,在一篇博文中披露了 Facebook 代碼發(fā)布流程。這個流程的確與外界之前想象的相差無幾,雖然 Facebook 對代碼發(fā)布的監(jiān)督比人們預想的更為嚴格。盡管這篇博文發(fā)表于一年前,但整個流程自 Facebook 上市以來似乎并未發(fā)生太大變化。
Facebook 員工主要由工程師構成,人數(shù)多的兩個團隊分別是 Engineering 和 Ops,總計占了 Facebook 員工總數(shù)的一半左右。此外,F(xiàn)acebook 還有大量產(chǎn)品經(jīng)理。他們要確保代碼按時發(fā)布。每一個產(chǎn)品經(jīng)理負責 7 到 10 名工程師。
Facebook 所有工程師都要接受 4 到 6 周的培訓,學習 Facebook 修復漏洞的方法,聆聽雇員舉辦的講座。在進入“訓練營”(Boot Camp)的工程師當中,會有大約 10% 無法順利通過測試,終被勸退。
接受完培訓以后,工程師開始接觸 Facebook 數(shù)據(jù)庫。他們可以隨意核對代碼,對數(shù)據(jù)庫做出修改。員工們還會拿到一張“禁做之事”名單,如禁止分享用戶數(shù)據(jù)。盡管如此,F(xiàn)acebook 還出臺了一系列措施,防止此類事情的發(fā)生。
同谷歌一樣,F(xiàn)acebook 的企業(yè)文化同樣以工程師為主。一名工程師說:“產(chǎn)品經(jīng)理基本上在這里毫無作為。”工程師可以修改尚未正式上市的產(chǎn)品規(guī)格,在任何時間提出新的功能創(chuàng)意。
工程師會在每月一次的不同團隊例會上提交他們的成果。產(chǎn)品推廣經(jīng)理和產(chǎn)品經(jīng)理會出席這些會議,但不被鼓勵暢所欲言。“如果產(chǎn)品經(jīng)理在例會上暢所欲言,工程師們會向領導層反應說,‘上次會議上他們有關產(chǎn)品的意見太多了’。”
在 Facebook,工程師想做什么,基本上都由他們自己決定。他們會找到主管,說:“這是我想做的五件事情。”產(chǎn)品經(jīng)理會說服工程師當場試一試,讓他們親身體驗這些項目的效果,但他們多數(shù)情況下不會對每位工程師的偏好橫加干涉。
工程師們不會爭論某項功能是否值得嘗試,而是開發(fā)出原型機。接下來,工程師會用一周的時間開發(fā)某項功能并進行測試,以確定它是否值得推出成品。通常情況下,新功能都是由 Facebook 員工親自測試。整個過程由一款名為“Gatekeeper”應用控制。這是 Facebook “黑客”文化的主要組成部分——快速開發(fā)和推出產(chǎn)品,淘汰沒有市場前景的產(chǎn)品。
在 Facebook,每個人都想?yún)⑴c后端產(chǎn)品的開發(fā)。可伸縮性和基礎架構是工程師感興趣的兩個問題。所以,工程師很難對實時消息等前端產(chǎn)品感到興奮,相反,每個人都希望從事像 News Feed 算法這樣的后端產(chǎn)品。這種做法與其他消費類科技企業(yè)的慣例背道而馳,在這些企業(yè),員工都希望參與前端產(chǎn)品的研發(fā)工作。
Facebook 創(chuàng)始人兼 CEO 馬克扎克伯格(Mark Zuckerberg)會親自對 News Feed 每個代碼更新把關。在 Facebook,所有重大升級的代碼都進行強制評估,任何一個改動都至少由一人把關。但是,無論工程師對 News Feed 做出任何改動,都將由扎克伯格親自把關。
Facebook 工程師負責測試產(chǎn)品功能,修復產(chǎn)品漏洞,對發(fā)布以后的產(chǎn)品進行維護,但他們并不是官方的質保團隊。不過,F(xiàn)acebook 仍然有負責質量評估的工程師,并積極鼓勵每位工程師報告產(chǎn)品漏洞。
正常情況下,代碼升級會在每周二發(fā)布。Facebook 有專門的評估工具,告訴工程師代碼更新的風險有多大。
運營團隊會逐步推出代碼更新。Facebook 共有大約 6 萬臺服務器,運營團隊會逐步將更新后的代碼發(fā)布到少數(shù)幾臺服務器上,確保它能起作用。開始是 6 臺服務器,接著慢慢增加。如果需要做出修改,那么這項工作會由提交代碼更新的工程師在線下完成。修復工作完成后,代碼會再次在那 6 臺服務器上先試用,接著增加到更多的服務器上。
在代碼更新發(fā)布期間,運營團隊會通過 IRC 和其他實時聊天工具一對一通知工程師,他提交的代碼是否需要修改。如果修復以后的結果仍然難以令運營團隊滿意,當事工程師會被“當眾羞辱”,雖然李沒有提供有關這方面的具體細節(jié),但他說如果這種情況經(jīng)常發(fā)生,工程師會被炒魷魚。
相關推薦

最新發(fā)布
性能測試之測試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測試是從什么時候開始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動化測試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項目適合做自動化?自動化測試人員應具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測試工具測評
2020/7/17 8:52:11RPA機器人能夠快速響應企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測試基本概念是怎么來的?軟件測試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10