0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

為所有離職的谷歌工程師寫的一份“廠外”生存指南

MqC7_CAAI_1981 ? 來源:lp ? 2019-04-19 16:30 ? 次閱讀

一位曾經(jīng)的谷歌工程師,花費(fèi)兩年時間,辛苦整理了一份清單。

這個名為“xg2xg”的清單,原本是這位前谷歌工程師(ex-Googler),為所有離職的谷歌工程師寫的一份“廠外”生存指南。

但實(shí)際上,這個大全實(shí)打?qū)嵉匾渤蔀榱艘环葑罴验_發(fā)工具大全。

所有的程序員,都能受益于此。

美國網(wǎng)友對這個大全給予了很高的評價:這份清單中列出的開源軟件,不僅解決了硅谷大廠前員工的難處,也能為其他所有碼農(nóng)解除困惑。

在這套大全的指導(dǎo)下,任何一個工程師,都能獲得類似在谷歌內(nèi)部寫代碼的體驗(yàn)。xg2xg上線僅僅一天就登上趨勢榜,收獲2500+星!

清單其中大部分替代軟件是Google開源的項(xiàng)目,或者是受谷歌論文的啟發(fā),由開源軟件基金會自己做的第三方實(shí)現(xiàn)。即使你從來沒進(jìn)過Google工作,也在享受著Google工程師們帶來的福利。不禁讓人感嘆“谷歌拯救世界”。

下面就讓我們一起來看看這份清單吧。

開發(fā)工具一覽

這份清單總共有兩部分,前半部分介紹的是碼農(nóng)常用的開發(fā)工具,包括核心技術(shù)、基礎(chǔ)設(shè)施、服務(wù)、開發(fā)運(yùn)維等;后半部分則面向非技術(shù)人員。

核心技術(shù)工具

大數(shù)據(jù)處理工具

Google內(nèi)部工具:MapReduce;替代品:ApacheHadoop、Spark

想要在上千臺機(jī)器組成的大集群上、并行處理上TB級別的海量數(shù)據(jù)集,就要用到這類大規(guī)模數(shù)據(jù)處理工具了。

MapReduce,就是這類工具的先驅(qū)。JeffDean等人2004年提出了這個分布式計(jì)算架構(gòu),最早在Google內(nèi)部用來處理大規(guī)模數(shù)據(jù)的并行計(jì)算。JeffDean還親自為它撰寫過使用指南。

而ApacheHadoop這個開源替代品,也是根據(jù)JeffDean當(dāng)年的論文自行實(shí)現(xiàn)而成,能提供與MapReduce文件系統(tǒng)類似的功能。

如果想要更快的數(shù)據(jù)處理速度,還有ApacheSpark供你選擇。相對于Hadoop的MapReduce會在運(yùn)行完工作后將中介數(shù)據(jù)存放到磁盤中,Spark使用了存儲器內(nèi)運(yùn)算技術(shù),能在數(shù)據(jù)尚未寫入硬盤時即在存儲器內(nèi)分析運(yùn)算。

序列化工具

Google內(nèi)部:ProtocolBuffer;外部替代品:Protobuf、Thrift、Avro

這一組工具用于結(jié)構(gòu)化數(shù)據(jù)序列化,上面這些,都是xml替代品,比它更小、更快、也更簡單。

ProtocolBuffer和Protobuf都是Google開發(fā)的序列化格式(SerializationFormat),github上可以找到這個項(xiàng)目的源代碼。

比起XML和JSON,Protobuf更小、更快,也更簡潔,很適合做數(shù)據(jù)存儲或RPC數(shù)據(jù)交換格式。只需要定義一次數(shù)據(jù)結(jié)構(gòu),就可以利用各種不同語言或者從各種不同數(shù)據(jù)流中對結(jié)構(gòu)化數(shù)據(jù)進(jìn)行輕松讀寫。

完全撇開Google,也不是就沒有別的選擇了。其他廠商也有類似的序列化方案。

比如Facebook開發(fā)的Thrift,它與Protobuf基本一樣。

Avro同樣也有schema(也就是程序中結(jié)構(gòu)化數(shù)據(jù)的定義),但是實(shí)現(xiàn)方式跟Protobuf和Thrift有很大區(qū)別。

由于數(shù)據(jù)不需要額外的標(biāo)注,Avro在序列化大量相同的數(shù)據(jù)時會比Protobuf和Thrift更有效率。不過在編碼大量變化的數(shù)據(jù)時,因?yàn)閟chema會隨數(shù)據(jù)一同存儲,Avro的效率會退化到JSON和MessagePack的級別。

看來在核心技術(shù)工具上,重回人間的前Google人還是有許多不錯的選擇的。

基礎(chǔ)設(shè)施

大型集群管理系統(tǒng)

Google內(nèi)部:Borg;外部替代品:Kubernetes、ApacheMesos、HashiCorpNomad

大型集群管理系統(tǒng)用于管理云平臺中多個主機(jī)上的容器化的應(yīng)用。

Borg是Google內(nèi)部的大型集群管理系統(tǒng),現(xiàn)如今應(yīng)用最廣泛的服務(wù)編配系統(tǒng)Kubernetes就脫胎于Borg。

Borg讓開發(fā)者能夠不必操心資源管理的問題,做到跨多個數(shù)據(jù)中心的資源利用率最大化。

沒有Borg十五年的經(jīng)驗(yàn),也就不會有Kubernetes。雖然作者把它放在開源/真實(shí)世界這一欄里,但事實(shí)上Kubernetes也是由Google設(shè)計(jì)并參與開發(fā)的。

Kubernetes使用Go語言編寫,是一個大而全的解決方案,服務(wù)調(diào)度、網(wǎng)絡(luò)、存儲、安全通通一手抓,而且本身的架構(gòu)也非常好,在上面做二次開發(fā)非常容易。

HashiCorpNomad同樣是一個比較常見的開源調(diào)度程序,架構(gòu)簡單,能將資源管理器和調(diào)度程序的功能集成到一個系統(tǒng)中。Nomad也是分布式的,高可用且易操作。但顯然Kubernetes的功能會更豐富。

至于Mesos,它僅僅是一個調(diào)度系統(tǒng),無法直接使用,要配合各種Mesosframework來實(shí)現(xiàn)各類功能。

存儲

當(dāng)然,Google內(nèi)部工具也不是所有的都能找到完美的替代品。

至少在存儲這件事情上,就有網(wǎng)友不贊同原作者觀點(diǎn)。他認(rèn)為這份清單在一定程度上具有誤導(dǎo)性,某些替代品根本達(dá)不到Google內(nèi)部工具的水平。

比如將Colossus和HDFS對比是在開玩笑,相比之下,HDFS就像是一個玩具。要說對比,它智能和十年前已經(jīng)退役的GFS相當(dāng)。

但HDFS恐怕是開源軟件中Colossus最好的替代品,對于“通用,大型,分布式文件系統(tǒng)”的使用情況,很難找到有比HDFS更好的了。

其他開發(fā)工具

列表中還有服務(wù)、開發(fā)運(yùn)維、安全等工具的替代品清單,由于篇幅限制,我們不再一一介紹,有需求的同學(xué)可以自取。全部工具的下載鏈接請參閱文末的GitHub地址。

還有什么福利

如果你不是工程師,上面那些工具大概就用不上了。不過,只要是個公司或者團(tuán)隊(duì),總會有IT和運(yùn)營需求。

比如說,飯總是要吃的。

很多網(wǎng)友看了這份清單,最感興趣的就是這一項(xiàng):

離開Google的人類,再也找不回免費(fèi)食堂。

畢竟,“中午吃什么”的哲學(xué)問題,每次想起來都是折磨。

羨慕的時候,可以用以下口令來安慰自己:

公司有吃的,還不是為了讓你們多點(diǎn)時間工作?

如果你覺得這一條說服力不夠,還可以跟一句補(bǔ)充說明:

Google最初是為什么提供免費(fèi)食物的?就是山景城總部周圍吃的選擇太少了,開車出去吃來回要一小時。對,就是想讓員工省下時間好好上班。

吃,只是IT/運(yùn)營章節(jié)的第一條。

后面,還有梗圖生成器Memegen。

工作太辛苦的時候,可以皮一下:

△當(dāng)沒有GPU的人,遇到了Google Colab

對此,甚至有人呼吁:

如果Google全家桶把Memegen收了就好了。

所以,這個章節(jié)并沒有和工作相關(guān)的資源么?

看看完整列表的話,還是能找到的:

有一些必要的小工具。

比如,CODEOWNERS可以用來指定哪些用戶來審查代碼,1Password是個密碼管理器。

也有一些同學(xué),沒在上面找到自己需要的答案,便直接提問了:

Google這樣的大廠,公司內(nèi)部wiki用的是什么?。课覀児居玫氖荙uip,它就是個黑洞,文檔一進(jìn)去就出不來了。

然后,有熱心人士回答了這個問題:

雖然不知道Google用的什么,但Confluence是很常用的。

xg2xg項(xiàng)目地址:https://github.com/jhuangtw-dev/xg2xg

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • Google
    +關(guān)注

    關(guān)注

    5

    文章

    1752

    瀏覽量

    57333
  • 存儲器
    +關(guān)注

    關(guān)注

    38

    文章

    7408

    瀏覽量

    163426
  • 源代碼
    +關(guān)注

    關(guān)注

    96

    文章

    2943

    瀏覽量

    66576

原文標(biāo)題:最佳開發(fā)工具大全!前谷歌工程師兩年打造“廠外生存指南”,登上GitHub熱榜

文章出處:【微信號:CAAI-1981,微信公眾號:中國人工智能學(xué)會】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    電子工程師指南 全面介紹工程師所具備的電路知識

    電子工程師指南全面介紹工程師所具備的電路知識電子工程師指南全面介紹工程師所具備的電路知識
    發(fā)表于 04-07 10:28

    電子工程師指南

    電子工程師指南,有必要看
    發(fā)表于 02-03 17:00

    電子工程師指南

    電子工程師指南
    發(fā)表于 08-14 13:20

    篇來自華為內(nèi)部的硬件工程師手冊

    本帖最后由 冒煙的開發(fā)板 于 2015-1-13 15:20 編輯 雖被稱為“狼性文化”,起來看下狼性文化下面孕育著怎樣的硬件工程師~~篇來自華為內(nèi)部的硬件工程師手冊~~PS
    發(fā)表于 08-26 13:17

    電子工程師,這里有一份datasheet閱讀指南

    ,物理參數(shù),甚至制造材料,使用建議等,內(nèi)容形式說明文字,各種特性曲線,圖表,數(shù)據(jù)表等。數(shù)據(jù)手冊的PDF文件般是免費(fèi)發(fā)放的。作為工程師,必須注意的還有器件的典型性能、最小和最大需
    發(fā)表于 03-13 10:07

    硬件工程師經(jīng)典筆試題集總結(jié)

    所謂金三銀四,現(xiàn)在3月和4月之間,現(xiàn)在不少的工程師小伙伴也在忙著找工作,特意送上一份資料《硬件工程師經(jīng)典筆試題集錦》電子書,助力
    發(fā)表于 08-06 02:48

    工程師告訴你如何去做PCB設(shè)計(jì)?

    工程師告訴你如何去做PCB設(shè)計(jì)?有一份指南請查收。
    發(fā)表于 04-26 07:03

    誰分享一份嵌入式軟件工程師/單片機(jī)軟件工程師面試試題&答案,THX!

    誰分享一份嵌入式軟件工程師/單片機(jī)軟件工程師面試試題&答案,THX!
    發(fā)表于 10-25 17:26

    電子工程師指南

    電子工程師指南
    發(fā)表于 03-15 09:51 ?0次下載

    電子工程師十大離職原因

    電子工程師是個特殊的群體,我接觸過的HR人都這樣講,都來問我這樣工程師出身的管理者個問題“電子工程師那么難溝通,他們到底在想什么”,對
    的頭像 發(fā)表于 12-22 15:49 ?7189次閱讀

    怎樣找到一份工程師工作

    說實(shí)話,你是位優(yōu)秀的工程師候選人嗎?你怎么評價自己?你面試過多少家公司?你拿到offer的比率是多少?試下用以下的公式來計(jì)算。
    的頭像 發(fā)表于 11-27 15:33 ?1552次閱讀

    谷歌是如何管理工程師的?

    谷歌創(chuàng)立開始,向來信奉“技術(shù)至上”的公司員工就直質(zhì)疑管理的價值。正如軟件工程師埃里克?福萊特(Eric Flatt)所說,“我們是家由工程師
    的頭像 發(fā)表于 08-02 09:56 ?3755次閱讀

    前端工程師的簡歷到底怎么

    其實(shí)前端工程師并不少,但很多時候合適的前端工程師難找。可能是由于程序員比較內(nèi)向,前端工程師都沒有把自己最厲害的那面表現(xiàn)出來。今天我們來聊聊前端工程
    的頭像 發(fā)表于 04-16 17:08 ?3674次閱讀

    工程師操作指南——RF指標(biāo)的內(nèi)在和意義

    來源:RF技術(shù)社區(qū) 本文來自與非網(wǎng) 這篇文章的初衷是源自我給工廠工程師一份“操作指南”,按理說這些東西對于工作了十來年的人來說應(yīng)該是手
    的頭像 發(fā)表于 12-08 15:42 ?592次閱讀

    外國工程師的PLC程序分享

    分享個外國工程師的PLC程序,大家感覺如何?
    的頭像 發(fā)表于 10-24 11:43 ?933次閱讀