Top Ad unit 728 × 90

Breaking News

軟體下載

Facebook如何編寫代碼

Facebook

Facebook代碼從開始編寫到最終發布,都有著極為嚴格的程序,CEO Mark Zuckerberg甚至對News Feed每個代碼更新親自把關,確保不出現任何差錯。


Facebook工程師是這家社交網站巨頭最有價值的財產,他們擁有非常大的自主權,但同時也面臨著盡快發布高質量代碼的壓力。

Mark Zuckerberg

Google員工李易通過與大批Facebook工程師的交談,在一篇博文中披露了Facebook代碼發布流程。這個流程的確與外界之前想像的相差無幾,雖然Facebook對代碼發布的監督比人們預想的更為嚴格。儘管這篇博文發表於一年前,但整個流程自Facebook上市以來似乎並未發生太大變化。

Facebook員工主要由工程師構成,人數最多的兩個團隊分別是Engineering和Ops,總計佔了Facebook員工總數的一半左右。此外,Facebook還有大量產品經理。他們要確保代碼按時發布。每一個產品經理負責7到10名工程師。

Coder

Facebook所有工程師都要接受4到6週的培訓,學習Facebook修復漏洞的方法,聆聽資深僱員舉辦的講座。在進入”訓練營”(Boot Camp)的工程師當中,會有大約10%無法順利通過測試,最終被勸退。

接受完培訓以後,工程師開始接觸Facebook數據庫。他們可以隨意核對代碼,對數據庫做出修改。員工們還會拿到一張”禁做之事”名單,如禁止分享用戶數據。儘管如此,Facebook還出台了一系列措施,防止此類事情的發生。

Coder

和Google一樣,Facebook的企業文化同樣以工程師為主。一名工程師說:產品經理基本上在這裡毫無作為。 工程師可以修改尚未正式上市的產品規格,在任何時間提出新的功能創意。

工程師會在​​每月一次的不同團隊例會上提交他們的成果。產品推廣經理和產品經理會出席這些會議,但不被鼓勵暢所欲言。”如果產品經理在例會上暢所欲言,工程師們就會向領導層反應說,上次會議上他們有關產品的意見太多了。”

在Facebook,工程師想做什麼,基本上都由他們自己決定。
他們會找到主管,說:這是我想做的五件事情。產品經理會說服工程師當場試一試,讓他們親身體驗這些項目的效果,但他們多數情況下不會對每位工程師的偏好橫加干涉。

工程師們不會爭論某項功能是否值得嘗試,而是開發出原型機。接下來,工程師會用一周的時間開發某項功能並進行測試,以確定它是否值得推出成品。通常情況下,新功能都是由Facebook員工親自測試。整個過程由一款名為Gatekeeper應用控制。這是Facebook黑客文化的主要組成部分—快速開發和推出產品,淘汰沒有市場前景的產品。

Coder

在Facebook,每個人都想參與後端產品的開發。可伸縮性和基礎架構是工程師最感興趣的兩個問題。所以,工程師很難對實時消息等前端產品感到興奮,相反,每個人都希望從事像News Feed算法這樣的後端產品。這種做法與其他消費類科技企業的慣例背道而馳,在這些企業,員工都希望參與前端產品的研發工作。

Mark Zuckerberg會親自對News Feed每個代碼更新把關。在Facebook,所有重大升級的代碼都進行強制評估,任何一個改動都至少由一人把關。但是,無論工程師對News Feed做出任何改動,都將由Mark Zuckerberg親自把關。

Mark Zuckerberg

Facebook工程師負責測試產品功能,修復產品漏洞,對發布以後的產品進行維護,但他們並不是官方的質保團隊。不過,Facebook仍然有負責質量評估的工程師,並積極鼓勵每位工程師報告產品漏洞。

正常情況下,代碼升級會在每週二發布。Facebook有專門的評估工具,告訴工程師代碼更新的風險有多大。

運營團隊會逐步推出代碼更新。Facebook共有大約6萬台服務器,運營團隊會逐步將更新後的代碼發佈到少數幾台服務器上,確保它能起作用。最開始是6台服務器,接著慢慢增加。如果需要做出修改,那麼這項工作會由提交代碼更新的工程師在線下完成。修復工作完成後,代碼會再次在那6台服務器上先試用,接著增加到更多的服務器上。

在代碼更新發布期間,運營團隊會通過IRC和其他實時聊天工具一對一通知工程師,他提交的代碼是否需要修改。如果修復以後的結果仍然難以令運營團隊滿意,當事工程師會被當眾羞辱,如果這種情況經常發生,工程師會被炒魷魚。
Facebook如何編寫代碼 Reviewed by wnews on 7:22 下午 Rating: 5

沒有留言:

All Rights Reserved by TechRoomage | 科技空間 © 2014 - 2015
Designed by TechRoomage

聯絡表單

名稱

以電子郵件傳送 *

訊息 *

技術提供:Blogger.