日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

最佳开发工具大全!前谷歌工程师两年打造“厂外生存指南”,登上GitHub热榜

發(fā)布時(shí)間:2025/3/21 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最佳开发工具大全!前谷歌工程师两年打造“厂外生存指南”,登上GitHub热榜 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

曉查 栗子 方馭洋 發(fā)自 凹非寺?
量子位 報(bào)道 | 公眾號(hào) QbitAI

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

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

但實(shí)際上,這個(gè)大全實(shí)打?qū)嵉匾渤蔀榱艘环?strong>最佳開(kāi)發(fā)工具大全。

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

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

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

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

下面就讓我們一起來(lái)看看這份清單吧。

開(kāi)發(fā)工具一覽

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

核心技術(shù)工具

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

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

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

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

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

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

序列化工具

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

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

Protocol?Buffer和Protobuf都是Google開(kāi)發(fā)的序列化格式(Serialization?Format),github上可以找到這個(gè)項(xiàng)目的源代碼。

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

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

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

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

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

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

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

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

Google內(nèi)部:Borg;外部替代品:Kubernetes、Apache?Mesos、HashiCorp?Nomad

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

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

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

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

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

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

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

存儲(chǔ)

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

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

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

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

其他開(kāi)發(fā)工具

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

還有什么福利

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

比如說(shuō),飯總是要吃的

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

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

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

羨慕的時(shí)候,可以用以下口令來(lái)安慰自己:

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

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

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

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

后面,還有梗圖生成器Memegen

工作太辛苦的時(shí)候,可以皮一下:

?當(dāng)沒(méi)有GPU的人,遇到了Google Colab

對(duì)此,甚至有人呼吁:

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

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

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

有一些必要的小工具。

比如,CODEOWNERS可以用來(lái)指定哪些用戶來(lái)審查代碼,1Password是個(gè)密碼管理器。

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

Google這樣的大廠,公司內(nèi)部wiki用的是什么啊??我們公司用的是Quip,它就是個(gè)黑洞,文檔一進(jìn)去就出不來(lái)了。

然后,有熱心人士回答了這個(gè)問(wèn)題:

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

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

總結(jié)

以上是生活随笔為你收集整理的最佳开发工具大全!前谷歌工程师两年打造“厂外生存指南”,登上GitHub热榜的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。