盖茨比JS站在成千上万的肩膀上
许多年前,Linux创始人Linus Torvalds在讨论他与Linux的开源合作时,借用了Isaac Newton爵士的“站在巨人的肩膀上”的话。虽然这是一个不错的想法-“嘿,我只能做出色的工作,因为其他几个人的出色工作”-可能在1991年适用于Linux,但是在描述开放源代码方面做得不好毕竟是在2020年。当有人今天发布开放源代码时,他们所吸引的不仅仅是一小撮天才开发人员。
不,正如Gatsby.js的最新版本所示,现代的开源项目依赖于成千上万个其他项目。或者,正如盖茨比(Gatsby)创始人凯尔·马修斯(Kyle Mathews)在接受采访时说的那样:“我们站在成千上万[普通]人的肩膀上。
最初(网络)是静态网站生成器。正如Mathews在他的帖子中所描述的那样,随着时间的流逝,组织转向数据库驱动的网站来支持越来越多的动态功能。随着网站的发展,静态网站生成会导致构建速度变慢,即使像WordPress这样的数据库驱动工具逐渐受到市场人士的青睐,他们也不想打扰Markdown中的编码。
预渲染有助于网站生成器,但不足以使其成为大型网站的首选。 但是那是那时;这是现在。 盖特比(Gatsby Builds)在2020年初推出了盖茨比构建(Gatsby Builds),通过巧妙地结合了分布式计算和复杂的缓存功能,构建时间比标准连续部署解决方案快60倍。
尼斯。但是,随着最近发布的增量构建,Gatsby可以在10秒内获得用于数据编辑的构建,这可以比现有构建解决方案提高1000倍。 怎么样? Mathews在接受采访时说:“我们所做的最大的努力是创建了一个依赖跟踪系统,该系统使我们能够便宜地找出在两次构建之间需要更新的内容。
”这听起来像是构建工具所采用的方法例如Bazel,或数据处理工具(例如Apache Spark和Apache Flink),是因为它是。 “ Gatsby像处理其他流处理器一样,处理来自数据/代码的网站更改事件-我们找出更改的内容,并廉价地对其进行更新。”传统的静态网站生成器长期以来一直采用批量处理数据的方法,但是Gatsby的新方法是实时流处理。
这很重要,这使得Gatsby方法可以在任何网站上使用,而不是一小部分网络都可以使用。它还依赖于GraphQL等出色的开源技术,该技术使Gatsby可以跟踪页面与数据源之间的数据依赖关系,以便当某些数据发生更改时,他们可以计算需要更新的页面。 所以我问马修斯,盖茨比对其他开源软件的依赖程度如何。
马修斯说:“我们严重依赖许多伟大的项目。”然后他继续说: 这句话也许可以更新,也许我们不是站在巨人的肩膀上,而是站在成千上万人的肩膀上。这是关于开源的很酷的事情之一-不仅限于天才!普通人可以构建和/或帮助维护一口大小的程序包,这些程序包仍然可以解决关键需求。
其中一些“普通人”已经建立了盖茨比所依赖的非凡代码。考虑到Gatsby是基于React的,React显然会立即浮现在脑海。但是还有更多。
还有更多。 Gatsby还依靠Webpack和Babel进行繁重的工作来处理和准备要部署的JavaScript,CSS和其他资产。 Mathews指出,这些项目“具有成千上万的工程师多年的杰出经验,”。 实际上,如果您查看Babel NPM软件包页面,就会发现136个依赖关系,但这忽略了Gatsby版本其他软件包的所有依赖关系,更不用说Gatsby依赖关系了。总体而言,马修斯说:“一个典型的盖茨比项目可能会使用世界各地成千上万工程师维护的数千个软件包,这真是令人惊讶。” 正是这种对开放源代码的依赖,“帮助[Gatsby]如此迅速地发展并以相对较小的团队的身份完成了许多工作。
”“正是Node.js生态系统广泛而深入,几乎满足了[Gatsby]的所有需求,他总结道。也不是他一个人。
下次您使用Linux,为Kubernetes做贡献或以其他方式使用开源软件时,请记住,在当今世界,我们都无可救药地(而且希望如此!)依赖于数百万“普通开发人员”,做非凡的事情..
Yorumlar
Yorum Gönder