自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Facebook是如何管理代碼的

開發(fā) 后端
我對(duì)Facebook的運(yùn)轉(zhuǎn)著迷。這是一個(gè)很獨(dú)特的環(huán)境,不容易被復(fù)制(他們的體系并不適合所有的公司,即使他們努力嘗試過)。下面是我和Facebook的朋友們關(guān)于他們?nèi)绾伍_發(fā)和管理項(xiàng)目的記錄。

我對(duì)Facebook的運(yùn)轉(zhuǎn)著迷。這是一個(gè)很獨(dú)特的環(huán)境,不容易被復(fù)制(他們的體系并不適合所有的公司,即使他們努力嘗試過)。下面是我和Facebook的朋友們關(guān)于他們?nèi)绾伍_發(fā)和管理項(xiàng)目的記錄。

現(xiàn)在距離我收集的這些信息又過去6個(gè)月了,我相信Facebook肯定又對(duì)他們的項(xiàng)目開發(fā)實(shí)踐進(jìn)行了改進(jìn)。所以這些記錄可能會(huì)有點(diǎn)過時(shí)。同時(shí)Facebook的工程師驅(qū)動(dòng)文化也越來越為大眾所知。非常感謝那些幫助我整理這篇文章的Facebook的朋友們。

記錄:

·截止到20106月,Facebook有將近2000名員工,10個(gè)月前只有1100名,一年之間差不多翻了一番。

·兩個(gè)最大的部門是工程師和運(yùn)維,每個(gè)部門大概都是400-500人。這兩個(gè)部門人數(shù)大約占了公司的一半。

·產(chǎn)品經(jīng)理與工程師的比例大約為1-71-10

·每個(gè)工程師入職時(shí),都要接收4-6周的培訓(xùn),通過修補(bǔ)bugs和聽高級(jí)開發(fā)工程師的課程來熟悉Facebook

·培訓(xùn)結(jié)束后,每個(gè)工程師都可以接觸線上的數(shù)據(jù)庫(更大的權(quán)力意味著更大的責(zé)任,也有一份"勿做清單",不然可能會(huì)被開,比如共享用戶的隱私數(shù)據(jù))。

·有非常牢靠的安全體系,以免有人不小心/故意做了些不好的事。

·每個(gè)工程師可以修改Facebook的任何代碼,隨時(shí)可以簽入。

·濃厚的工程師驅(qū)動(dòng)文化。"產(chǎn)品經(jīng)理基本可以被忽略",這是Facebook一名員工的話。工程師可以修改流程的細(xì)節(jié),重新安排工作任務(wù),隨時(shí)植入自己的想法。

·在每月的跨部門會(huì)議上,由工程師來匯報(bào)工作進(jìn)度,市場(chǎng)部和產(chǎn)品經(jīng)理會(huì)出席會(huì)議,也可以做些簡(jiǎn)短的發(fā)言,但如果說得太多,很可能就會(huì)被打小報(bào)告。他們確實(shí)想讓工程師來主導(dǎo)產(chǎn)品的開發(fā),對(duì)自己的產(chǎn)品負(fù)責(zé)。

·項(xiàng)目需要的資源都是自愿的

    ·一個(gè)產(chǎn)品經(jīng)理把工程師們召集到一起,讓他們對(duì)他的想法產(chǎn)生興趣。

   ·工程師們決定開發(fā)那些讓他們感興趣的特性。

   ·工程師跟他們的經(jīng)理說:"我下周想開發(fā)這5個(gè)新特性"。

   ·經(jīng)理會(huì)讓工程師獨(dú)立開發(fā),可能有時(shí)會(huì)讓他優(yōu)先完成一些特性。

   ·工程師獨(dú)立完成所有的特性——前端/后端/數(shù)據(jù)庫,等等所有相關(guān)的部分。如果需要得到設(shè)計(jì)人員的幫助,需要先讓設(shè)計(jì)人員對(duì)你的想法產(chǎn)生興趣。其他如架構(gòu)之類的也一樣。但總體來說,工程師要獨(dú)立完成所有的任務(wù)。

·對(duì)于某個(gè)特性是否值得開發(fā)的爭(zhēng)論,通常是這么解決的:花一個(gè)星期的時(shí)間完成他,并在小部分人群中(1%)進(jìn)行測(cè)試。

·工程師常常希望解決難題,這能獲得聲望和尊敬。他們很難對(duì)前端項(xiàng)目或UI設(shè)計(jì)產(chǎn)生太大的興趣。這跟其他公司可能正好相反。在Facebook,后端任務(wù),比如新的feed算法,廣告投放算法,memcache優(yōu)化等等,是工程師真正感興趣的。

·所有的代碼修改都要進(jìn)行審核(通過一個(gè)或多個(gè)工程師),但News Feed是個(gè)例外,因?yàn)樘匾耍?/FONT>Zuckerberg會(huì)親自review

·所有的修改至少要被一個(gè)人審核,而且這個(gè)系統(tǒng)可以讓任何人很方便地審核其他人的代碼,即使你沒有邀請(qǐng)他

·工程師負(fù)責(zé)測(cè)試,代碼修復(fù),和維護(hù)自己的項(xiàng)目。

·每個(gè)辦公室或通過VPN連接的員工會(huì)使用下一版的Facebook,這個(gè)版本的Facebook會(huì)經(jīng)常更新,通常比公開的早1-12小時(shí)。所有的員工被強(qiáng)烈建議提交bugs,而且通常會(huì)很快被修復(fù)。

·很奇怪只有很少的QA或自動(dòng)測(cè)試——"大部分工程師都能寫出基本沒有bug的代碼,只是在其他公司他們不需要這么做。如果有QA部門,他們只要把代碼寫完,扔給他們就行了"

·[針對(duì)上一條]我們有自動(dòng)測(cè)試,代碼發(fā)布前必須要通過測(cè)試。我們不相信"所有的工程師都能寫出沒有bug的代碼",畢竟這是一個(gè)商業(yè)公司。

·很奇怪,缺少產(chǎn)品經(jīng)理的影響和控制——產(chǎn)品經(jīng)理是很獨(dú)立的和自由的。產(chǎn)生影響力的關(guān)鍵是與工程師和工程師的領(lǐng)導(dǎo)們搞好關(guān)系。需要大致了解技術(shù),不要提一些愚蠢的想法。

·所有提交的代碼每周二打包一次。

·只要多一分努力,總有一天會(huì)發(fā)生改變。

·星期二的代碼發(fā)布,需要所有的提交過代碼的工程師在場(chǎng)。

·代碼打包前,工程師必須在一個(gè)特殊的IRC channel上。

·運(yùn)維執(zhí)行打包過程

   ·Facebook有大約60000臺(tái)服務(wù)器。

   ·9個(gè)代碼發(fā)布級(jí)別。

   ·最小的級(jí)別只有6臺(tái)服務(wù)器。

   ·星期二的代碼發(fā)布會(huì)先發(fā)布到6臺(tái)服務(wù)器上,運(yùn)維組會(huì)檢測(cè)這6臺(tái)服務(wù)器的反應(yīng),保證代碼正常工作,然后再提交到下一級(jí)。

   ·如果發(fā)布出現(xiàn)了一些問題(如報(bào)錯(cuò)等等),那么就停止下一級(jí)的部署,提交出錯(cuò)代碼的工程師負(fù)責(zé)修復(fù)問題,然后從頭繼續(xù)發(fā)布。

   ·所以一次發(fā)布可能會(huì)經(jīng)歷幾次重復(fù):1-2-3-fix. 回到1. 1-2-3-4-5-fix. 回到1. 1-2-3-4-5-6-7-8-9。

·運(yùn)維組是受過嚴(yán)格訓(xùn)練,倍受尊敬,而且有商業(yè)意識(shí)的。他們的工作包括分析錯(cuò)誤日志,負(fù)載和內(nèi)存狀態(tài)等等,還包括用戶行為。

·代碼發(fā)布期間,運(yùn)維組使用IRC-based頁面系統(tǒng),可以通過Facebook/email/irc/im/sms ping每一個(gè)工程師,如果需要他們注意的話。對(duì)運(yùn)維組不做回應(yīng)是一件很羞愧的事。

·代碼一旦發(fā)布到第9級(jí),并且穩(wěn)定運(yùn)行,就算發(fā)布成功了。

·如果一個(gè)特性沒有按時(shí)完成,也沒什么大不了的,下次完成時(shí)一并發(fā)布即可。

·如果被svn-blamed,public shamed或工作經(jīng)常疏忽就很可能被開除。"這是一個(gè)高效的文化"。不夠高效或者不夠聰明的員工會(huì)被剔除。管理層會(huì)在6個(gè)月的時(shí)間里觀察你表現(xiàn),如果不合格,只能說再見。每一級(jí)都是這個(gè)待遇,即使是C級(jí)別和VP級(jí)別,如果不夠高效,也會(huì)被開除。

·被責(zé)罵不會(huì)導(dǎo)致解雇。我們特別尊重別人,原諒別人。大部分高級(jí)工程師都或多或少犯過一些嚴(yán)重的錯(cuò)誤,包括我。但沒有人因此被解雇。

·我也沒有遇到過因?yàn)樯厦嫣岬竭^的犯錯(cuò)誤而被解雇。有些人犯了錯(cuò),他們會(huì)非常努力地去修復(fù),也讓其他人得到了學(xué)習(xí)。

原文鏈接:http://blog.leezhong.com/translate/2011/01/18/how-Facebook-ships-code.html

【編輯推薦】

實(shí)例016 如何對(duì)齊零亂的代碼

實(shí)例002 設(shè)置程序代碼行號(hào)

實(shí)例010 添加程序代碼

責(zé)任編輯:陳貽新 來源: 無網(wǎng)不剩
相關(guān)推薦

2011-03-10 09:37:52

Facebook代碼

2015-05-12 10:33:09

程序員代碼

2011-09-01 09:07:30

程序員

2014-04-30 13:57:41

2015-01-28 13:10:55

2015-04-20 11:33:34

MySQLDBAFacebook of

2020-07-28 08:10:33

Linux內(nèi)存虛擬

2024-04-15 00:00:00

Git管理代碼

2011-03-11 09:53:46

FacebookMySQL

2020-04-24 16:05:06

Javascript代碼前端

2024-04-01 08:23:20

代碼Javajavascript

2016-11-21 15:08:38

Leader工程師團(tuán)隊(duì)管理

2015-08-13 14:10:53

OKRGoogleFacebook

2012-07-06 14:03:44

Facebook

2020-07-28 10:05:51

互聯(lián)網(wǎng)FacebookTikTok

2011-02-18 09:56:42

Facebook人才FaceBook

2015-08-05 10:50:01

Facebook緩存網(wǎng)頁

2015-11-09 11:23:09

FacebookFOOMs

2018-12-19 17:20:17

2017-11-01 14:29:38

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)