國內工程師學學!穀歌工程師是如何練就過硬本領的?
發布時間:2014-12-27 責任編輯:sherryyu
【導讀】一yi位wei在zai穀gu歌ge從cong事shi工gong程cheng師shi的de朋peng友you為wei大da家jia帶dai來lai了le穀gu歌ge工gong程cheng師shi文wen化hua中zhong的de幾ji個ge核he心xin原yuan則ze,國guo內nei工gong程cheng師shi都dou來lai瞧qiao瞧qiao別bie人ren是shi如ru何he練lian就jiu過guo硬ying的de本ben領ling的de。同tong時shi也ye看kan看kan國guo內nei外wai的de差cha距ju到dao底di有you多duo大da?
我大學畢業後便加入Google的搜索質量團隊,在2006年中旬到2008年中旬在其工作,在這期間,公司的規模從8000人上漲到20000人。在我的第一個項目,我同兩位極具天賦的工程師一起工作,短短六個月,我們原型化、測試並啟動了網站的新功能,每天向數百萬用戶在google.com上展示相關搜索。作為團隊的新員工,自始至終最突出的感受是在這樣的環境中,公司如何能使像我這樣的新工程師快速成長起來。
如果這不是Google工程文化的關鍵要素,對於我們這樣規模的團隊在如此短時間內發布新特性是極為困難的。這些要素能夠讓我迅速地獲得Google的代碼庫、工具和基礎設施。它們也是使公司能夠達到今天50000雇員規模的原因。
一些前穀歌員工可能抱怨公司變得遲緩和官僚,但是不可否認它已經獲得很高的成就和很大的規模,在《財富》評選的100家最適合工作的公司中名列前茅。
這有我從穀歌工程文化中獲得的六個核心原則,你可能能夠從中獲益:

把工程資源用於共享工具和抽象概念。在早期穀歌在工具和抽象概念上大力投資,例如Protocol Buffers,MapReduce,BigTable和he其qi他ta在zai工gong程cheng中zhong自zi始shi至zhi終zhong都dou會hui用yong到dao的de東dong西xi。解jie決jue問wen題ti好hao的de態tai度du並bing使shi得de每mei個ge人ren能neng夠gou接jie受shou已yi經jing帶dai來lai巨ju大da的de收shou益yi。每mei個ge團tuan隊dui都dou花hua費fei較jiao少shao的de心xin理li周zhou期qi選xuan擇ze使shi用yong哪na個ge工gong具ju,專zhuan注zhu於yu工gong具ju的de團tuan隊dui能neng夠gou更geng關guan注zhu提ti升sheng工gong程cheng生sheng產chan力li,和he改gai善shan已yi經jing使shi用yong的de工gong具ju和he服fu務wu。每mei個ge團tuan隊dui可ke能neng使shi用yong截jie然ran不bu同tong的de工gong具ju鏈lian,這zhe也ye意yi味wei著zhe當dang你ni學xue習xi了le基ji本ben單dan元yuan結jie構gou後hou,更geng容rong易yi理li解jie許xu多duo項xiang目mu背bei後hou的de設she計ji。這zhe個ge方fang法fa的de負fu麵mian影ying響xiang就jiu是shi有you些xie時shi候hou你ni可ke能neng感gan覺jiao你ni的decase是被強行塞入一個特別的良好支持的工具,即使它不是最好的。
在(zai)新(xin)工(gong)程(cheng)師(shi)培(pei)訓(xun)中(zhong)投(tou)資(zi)可(ke)重(zhong)複(fu)使(shi)用(yong)的(de)訓(xun)練(lian)材(cai)料(liao)。我(wo)在(zai)穀(gu)歌(ge)能(neng)夠(gou)迅(xun)速(su)變(bian)得(de)如(ru)此(ci)高(gao)產(chan)的(de)一(yi)個(ge)原(yuan)因(yin)是(shi)公(gong)司(si)在(zai)培(pei)訓(xun)材(cai)料(liao)上(shang)麵(mian)花(hua)了(le)大(da)力(li)去(qu)投(tou)資(zi),其(qi)稱(cheng)之(zhi)為(wei)Codelabs,Codelabs包bao括kuo了le公gong司si的de核he心xin抽chou象xiang模mo型xing,解jie釋shi它ta們men為wei什shen麼me被bei設she計ji出chu來lai,突tu出chu代dai碼ma庫ku的de相xiang關guan片pian段duan,以yi及ji通tong過guo實shi現xian練lian習xi驗yan證zheng理li解jie它ta們men。如ru果guo沒mei有you它ta,我wo將jiang會hui花hua更geng多duo的de時shi間jian來lai學xue習xi各ge種zhong我wo需xu要yao去qu了le解jie的de各ge種zhong技ji術shu,這zhe也ye意yi味wei著zhe我wo的de隊dui員yuan要yao花hua費fei更geng多duo的de精jing力li向xiang我wo去qu解jie釋shi它ta們men。我wo在zai穀gu歌ge這zhe樣yang積ji極ji的de經jing曆li,強qiang有you力li的de影ying響xiang了le我wo在zai後hou來lai的deQuora新人培訓過程中大力推崇Codelabs使用的決定。
標準化編碼約定。每個關於空格、大小寫、行長度、是(shi)否(fou)使(shi)用(yong)智(zhi)能(neng)指(zhi)針(zhen)等(deng)約(yue)定(ding),可(ke)能(neng)似(si)乎(hu)是(shi)不(bu)重(zhong)要(yao)的(de),但(dan)是(shi)到(dao)了(le)穀(gu)歌(ge)這(zhe)樣(yang)的(de)大(da)規(gui)模(mo)時(shi)會(hui)帶(dai)來(lai)巨(ju)大(da)的(de)影(ying)響(xiang)。我(wo)不(bu)是(shi)第(di)一(yi)次(ci)承(cheng)認(ren),當(dang)代(dai)碼(ma)校(xiao)驗(yan)人(ren)員(yuan)挑(tiao)刺(ci)我(wo)的(de)代(dai)碼(ma)令(ling)我(wo)感(gan)到(dao)十(shi)分(fen)不(bu)愉(yu)快(kuai),就(jiu)因(yin)為(wei)我(wo)沒(mei)有(you)正(zheng)確(que)的(de)縮(suo)進(jin)或(huo)在(zai)行(xing)長(chang)度(du)超(chao)出(chu)了(le)規(gui)定(ding)的(de)兩(liang)個(ge)字(zi)符(fu)。但(dan)是(shi)因(yin)為(wei)大(da)家(jia)都(dou)遵(zun)循(xun)同(tong)樣(yang)的(de)約(yue)定(ding),使(shi)得(de)瀏(liu)覽(lan)代(dai)碼(ma)變(bian)得(de)大(da)大(da)容(rong)易(yi)。當(dang)更(geng)換(huan)團(tuan)隊(dui)或(huo)在(zai)跨(kua)部(bu)門(men)項(xiang)目(mu)中(zhong)工(gong)作(zuo)時(shi),這(zhe)幾(ji)乎(hu)沒(mei)有(you)額(e)外(wai)支(zhi)出(chu)去(qu)學(xue)習(xi)新(xin)團(tuan)隊(dui)的(de)約(yue)定(ding)。當(dang)團(tuan)隊(dui)規(gui)模(mo)很(hen)小(xiao)時(shi),約(yue)定(ding)是(shi)那(na)種(zhong)很(hen)容(rong)易(yi)被(bei)忽(hu)視(shi)的(de)東(dong)西(xi),但(dan)是(shi)在(zai)代(dai)碼(ma)和(he)團(tuan)隊(dui)規(gui)模(mo)逐(zhu)漸(jian)壯(zhuang)大(da)在(zai)這(zhe)方(fang)麵(mian)越(yue)來(lai)越(yue)做(zuo)出(chu)改(gai)變(bian),這(zhe)樣(yang)你(ni)事(shi)實(shi)上(shang)希(xi)望(wang)從(cong)始(shi)至(zhi)終(zhong)都(dou)是(shi)一(yi)致(zhi)。如(ru)果(guo)可(ke)能(neng)早(zao)期(qi)在(zai)約(yue)定(ding)一(yi)致(zhi)性(xing)上(shang)保(bao)持(chi)一(yi)致(zhi),或(huo)者(zhe)使(shi)用(yong)穀(gu)歌(ge)開(kai)源(yuan)的(de)風(feng)格(ge)指(zhi)南(nan)。
通過代碼複審(Code Review)提(ti)升(sheng)代(dai)碼(ma)質(zhi)量(liang)。對(dui)每(mei)次(ci)改(gai)變(bian)進(jin)行(xing)代(dai)碼(ma)複(fu)審(shen)減(jian)緩(huan)了(le)迭(die)代(dai)更(geng)新(xin)的(de)速(su)度(du),但(dan)是(shi)提(ti)升(sheng)了(le)代(dai)碼(ma)質(zhi)量(liang),新(xin)工(gong)程(cheng)師(shi)收(shou)到(dao)反(fan)饋(kui)後(hou),他(ta)們(men)需(xu)要(yao)迅(xun)速(su)的(de)采(cai)取(qu)最(zui)佳(jia)的(de)實(shi)踐(jian)並(bing)專(zhuan)注(zhu)於(yu)公(gong)認(ren)的(de)代(dai)碼(ma)質(zhi)量(liang)等(deng)級(ji)。總(zong)體(ti)的(de)代(dai)碼(ma)質(zhi)量(liang)越(yue)高(gao),也(ye)就(jiu)意(yi)味(wei)著(zhe)新(xin)工(gong)程(cheng)師(shi)在(zai)模(mo)仿(fang)周(zhou)圍(wei)人(ren)員(yuan)的(de)代(dai)碼(ma)同(tong)時(shi),初(chu)期(qi)就(jiu)會(hui)寫(xie)出(chu)更(geng)加(jia)簡(jian)潔(jie)的(de)代(dai)碼(ma)。因(yin)此(ci),代(dai)碼(ma)複(fu)審(shen)有(you)助(zhu)於(yu)公(gong)司(si)在(zai)較(jiao)大(da)規(gui)模(mo)上(shang)位(wei)置(zhi)較(jiao)高(gao)的(de)軟(ruan)件(jian)質(zhi)量(liang)。
用正確數據解決很多問題。穀歌研發主管Peter Norvig經常談到在解決複雜問題上“不合理的數據有效性”。正確的數據能夠幫助你了解用戶,劃分辦公室政治,解決爭論,並讓你跟上進度。開發日誌和數據基礎工具,如Sawzall和MapReduce,使穀歌的工程師從大量數據中篩選出來變為可能。
自動化測試來衡量你的代碼。穀歌有十分強烈的單元測試文化,“廁所測試”就jiu是shi一yi個ge例li子zi,差cha不bu多duo我wo每mei做zuo一yi次ci代dai碼ma的de改gai動dong都dou伴ban隨sui一yi個ge單dan元yuan測ce試shi,代dai碼ma複fu審shen員yuan將jiang會hui嚴yan格ge地di檢jian查zha他ta們men。這zhe讓rang開kai發fa變bian慢man,但dan它ta也ye意yi味wei著zhe成cheng百bai上shang千qian的de工gong程cheng師shi可ke以yi改gai變bian代dai碼ma庫ku中zhong的de同tong一yi部bu分fen而er不bu會hui犧xi牲sheng過guo多duo的de質zhi量liang和he可ke靠kao性xing。穀gu歌ge以yi同tong樣yang的de方fang式shi在zai共gong享xiang工gong具ju上shang進jin行xing投tou入ru,它ta也ye會hui共gong享xiang測ce試shi框kuang架jia,並bing通tong過guo最zui好hao的de測ce試shi實shi踐jian讓rang大da家jia寫xie測ce試shi變bian得de更geng容rong易yi。
當我後來在Ooyala和Quora幫(bang)助(zhu)他(ta)們(men)構(gou)建(jian)團(tuan)隊(dui)和(he)產(chan)品(pin)時(shi),穀(gu)歌(ge)的(de)工(gong)作(zuo)強(qiang)烈(lie)地(di)讓(rang)我(wo)思(si)考(kao),在(zai)哪(na)些(xie)地(di)方(fang)什(shen)麼(me)會(hui)形(xing)成(cheng)良(liang)好(hao)的(de)工(gong)程(cheng)文(wen)化(hua)。然(ran)而(er),在(zai)穀(gu)歌(ge)這(zhe)樣(yang)規(gui)模(mo)的(de)公(gong)司(si)工(gong)作(zuo)好(hao)並(bing)不(bu)一(yi)定(ding)意(yi)味(wei)著(zhe)會(hui)在(zai)不(bu)同(tong)機(ji)構(gou)的(de)不(bu)同(tong)發(fa)展(zhan)時(shi)期(qi)的(de)工(gong)作(zuo)同(tong)樣(yang)會(hui)好(hao)。每(mei)個(ge)工(gong)程(cheng)決(jue)策(ce)都(dou)包(bao)括(kuo)一(yi)係(xi)列(lie)權(quan)衡(heng),但(dan)是(shi)穀(gu)歌(ge)工(gong)程(cheng)文(wen)化(hua)提(ti)供(gong)了(le)一(yi)部(bu)分(fen)權(quan)衡(heng),而(er)你(ni)可(ke)以(yi)從(cong)這(zhe)裏(li)開(kai)始(shi)。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
- 從技術研發到規模量產:恩智浦第三代成像雷達平台,賦能下一代自動駕駛!
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
按鈕開關
白色家電
保護器件
保險絲管
北鬥定位
北高智
貝能科技
背板連接器
背光器件
編碼器型號
便攜產品
便攜醫療
變容二極管
變壓器
檳城電子
並網
撥動開關
玻璃釉電容
剝線機
薄膜電容
薄膜電阻
薄膜開關
捕魚器
步進電機
測力傳感器
測試測量
測試設備
拆解
場效應管
超霸科技




