最佳开发工具大全GitHub-Star-62k

5次阅读

共计 2847 个字符,预计需要花费 8 分钟才能阅读完成。

一位已经的谷歌工程师,破费两年工夫,辛苦整顿了一份清单。本文转自量子位,作者晓查、栗子、方驭洋,如有侵,可删!

这个名为“xg2xg”的清单,本来是这位前谷歌工程师(ex-Googler),为所有到职的谷歌工程师写的一份“厂外”生存指南。

但实际上,这个大全实打实地也成为了一份最佳开发工具大全。

所有的程序员,都能受害于此。

美国网友对这个大全给予了很高的评估:这份清单中列出的开源软件,不仅解决了硅谷大厂前员工的难处,也能为其余所有码农解除困惑。

在这套大全的领导下,任何一个工程师,都能取得相似在谷歌外部写代码的体验。xg2xg 上线仅仅一天就登上趋势榜,截至明天,已在 GitHub 播种 6200+ Star!

清单其中大部分代替软件是 Google 开源的我的项目,或者是受谷歌论文的启发,由开源软件基金会本人做的第三方实现。即便你素来没进过 Google 工作,也在享受着 Google 工程师们带来的福利。不禁让人感叹“谷歌援救世界”。

上面就让咱们一起来看看这份清单吧。

开发工具一览

这份清单总共有两局部,前半部分介绍的是码农罕用的开发工具,包含核心技术、基础设施、服务、开发运维等;后半局部则面向非技术人员。

核心技术工具

大数据处理工具

Google 外部工具:MapReduce;

替代品:Apache Hadoop、Spark

想要在上千台机器组成的大集群上、并行处理上 TB 级别的海量数据集,就要用到这类大规模数据处理工具了。

MapReduce,就是这类工具的先驱。Jeff Dean 等人 2004 年提出了这个分布式计算架构,最早在 Google 外部用来解决大规模数据的并行计算。Jeff Dean 还亲自为它撰写过使用指南。

而 Apache Hadoop 这个开源替代品,也是依据 Jeff Dean 当年的论文自行实现而成,能提供与 MapReduce 文件系统相似的性能。

如果想要更快的数据处理速度,还有 Apache Spark 供你抉择。绝对于 Hadoop 的 MapReduce 会在运行完工作后将中介数据寄存到磁盘中,Spark 应用了存储器内运算技术,能在数据尚未写入硬盘时即在存储器内剖析运算。

序列化工具

Google 外部:Protocol Buffer;

内部替代品:Protobuf、Thrift、Avro

这一组工具用于结构化数据序列化,下面这些,都是 xml 替代品,比它更小、更快、也更简略。

Protocol Buffer 和 Protobuf 都是 Google 开发的序列化格局(Serialization Format),github 上能够找到这个我的项目的源代码。

比起 XML 和 JSON,Protobuf 更小、更快,也更简洁,很适宜做数据存储或 RPC 数据交换格局。只须要定义一次数据结构,就能够利用各种不同语言或者从各种不同数据流中对结构化数据进行轻松读写。

齐全撇开 Google,也不是就没有别的抉择了。其余厂商也有相似的序列化计划。

比方 Facebook 开发的 Thrift,它与 Protobuf 根本一样。

Avro 同样也有 schema(也就是程序中结构化数据的定义),然而实现形式跟 Protobuf 和 Thrift 有很大区别。

因为数据不须要额定的标注,Avro 在序列化大量雷同的数据时会比 Protobuf 和 Thrift 更有效率。不过在编码大量变动的数据时,因为 schema 会随数据一起存储,Avro 的效率会进化到 JSON 和 MessagePack 的级别。

看来在核心技术工具上,重回世间的前 Google 人还是有许多不错的抉择的。

基础设施

大型集群管理系统

Google 外部:Borg;内部替代品:Kubernetes、Apache Mesos、HashiCorp Nomad

大型集群管理系统用于治理云平台中多个主机上的容器化的利用。

Borg 是 Google 外部的大型集群管理系统,现如今利用最宽泛的服务编配零碎 Kubernetes 就脱胎于 Borg。

Borg 让开发者可能不用操心资源管理的问题,做到跨多个数据中心的资源利用率最大化。

没有 Borg 十五年的教训,也就不会有 Kubernetes。尽管作者把它放在开源 / 真实世界这一栏里,但事实上 Kubernetes 也是由 Google 设计并参加开发的。

Kubernetes 应用 Go 语言编写,是一个大而全的解决方案,服务调度、网络、存储、平安统统一手抓,而且自身的架构也十分好,在下面做二次开发非常容易。

HashiCorp Nomad 同样是一个比拟常见的开源调度程序,架构简略,能将资源管理器和调度程序的性能集成到一个零碎中。Nomad 也是分布式的,高可用且易操作。但显然 Kubernetes 的性能会更丰盛。

至于 Mesos,它仅仅是一个调度零碎,无奈间接应用,要配合各种 Mesos framework 来实现各类性能。

存储

当然,Google 外部工具也不是所有的都能找到完满的替代品。

至多在存储这件事件上,就有网友不同意原作者观点。他认为这份清单在肯定水平上具备误导性,某些替代品基本达不到 Google 外部工具的程度。

比方将 Colossus 和 HDFS 比照是在开玩笑,相比之下,HDFS 就像是一个玩具。要说比照,它智能和十年前曾经服役的 GFS 相当。

但 HDFS 恐怕是开源软件中 Colossus 最好的替代品,对于“通用,大型,分布式文件系统”的应用状况,很难找到有比 HDFS 更好的了。

其余开发工具

列表中还有服务、开发运维、平安等工具的替代品清单,因为篇幅限度,咱们不再一一介绍,有需要的同学能够自取。全副工具的下载链接请参阅文末的 GitHub 地址。

还有什么福利

如果你不是工程师,下面那些工具大略就用不上了。不过,只有是个公司或者团队,总会有 IT 和经营需要。

比如说, 饭总是要吃的。

很多网友看了这份清单,最感兴趣的就是这一项:

来到 Google 的人类,再也找不回收费食堂。

毕竟,“中午吃什么”的哲学问题,每次想起来都是折磨。

艳羡的时候,能够用以下口令来刺激本人:

公司有吃的,还不是为了让你们多点工夫工作?

如果你感觉这一条说服力不够,还能够跟一句补充阐明:

Google 最后是为什么提供收费食物的?就是山景城总部四周吃的抉择太少了,开车进来吃来回要一小时。对,就是想让员工省下工夫好好下班。

吃,只是 IT / 经营章节的第一条。

前面,还有梗图生成器 Memegen。

工作太辛苦的时候,能够皮一下:

对此,甚至有人呐喊:

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

所以,这个章节并没有和工作相干的资源么?

看看残缺列表的话,还是能找到的:

有一些必要的小工具。

比方,CODEOWNERS 能够用来指定哪些用户来审查代码,1Password 是个明码管理器。

也有一些同学,没在下面找到本人须要的答案,便间接发问了:

Google 这样的大厂,公司外部 wiki 用的是什么啊?咱们公司用的是 Quip,它就是个黑洞,文档一进去就出不来了。

而后,有热心人士答复了这个问题:

尽管不晓得 Google 用的什么,但 Confluence 是很罕用的。

除此之外,你还用过哪些比拟实用的开发者工具呢?

正文完
 0