交织的网

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 价值 $200 的免费积分!

Jamstack 有点讽刺。

概念很简单:将预渲染的静态文件放到专门用于此的 Web 托管 (CDN) 上。就是这样。如果需要更多功能,从那里开始的任何操作都将使用客户端 JavaScript 完成,它很可能与无服务器函数进行通信,因为这是后端 Jamstack 的精神伴侣。我听到 Guillermo Rauch 前几天在 Smashing Conf 上说,它并非真正的“堆栈”,因为它在您所做的事情上几乎完全是非强制性的。虽然我喜欢 Jamstack 这个词,但这也很公平。

讽刺的是,虽然概念很简单,但这种简单性可能是复杂性的原因

Netlify,这家主要推动 Jamstack 的公司,意识到了这一点。他们知道,如果没有具有后端语言的后端服务器,像基本联系表单这样的东西就会变得很复杂。我们必须想出另一种方法来处理该表单,而不是进入无脑解决问题的领域。因此,他们 为您解决了这个问题(以及其他问题,例如身份验证和无服务器函数)。但是,有 许多其他公司 想要成为您机器中的齿轮。

这仅仅是其中一个潜在的复杂之处。您将使用什么作为 CMS 或其他数据存储?您的构建流程是什么样的?您如何查看内容更改的预览?您如何进行身份验证?如果您需要一些花哨的日历小部件怎么办?如果您想卖东西怎么办?网站可以做任何事情,Jamstack 都能提供解决方案 - 只是将所有这些解决方案组合在一起会让人感觉支离破碎,而且可能令人困惑。

Dave 最近玩了 Eleventy + Tailwind + Netlify CMS(这是 Jamstack 风格的),他说感觉就像赶牛。

因此,我的小混搭原本只应该包含 3 种技术,却最终让我接触了大约 20 种不同的技术,让我在午夜后挖掘了第 n 级依赖项的源代码。如果我想要表达对当今 Web 开发的不满,那就是这样。您想使用三种工具,但您必须知道如何使用二十种工具。如果模块和组件就像乐高积木一样,那么这就像把整个盒子里的积木都倒在地上,只为了找到您需要的一块小积木。

“我们编织的错综复杂的网络”,确实如此。

Richard MacManus 和 Matt Mullenweg 之间的对话¹ 中,Richard 引用了 Matt 的话:

您可以将十几个服务拼凑在一起,每个服务都有自己的帐户和账单,每月花费数百美元,才能获得类似的结果,而您只需每月花费几美元就可以使用 WordPress 在共享主机上获得相同的结果。”他说。“而且它会更加脆弱,因为链条的强度取决于最薄弱的环节。您将不同的工具集、登录、计费、托管链式连接在一起……任何部分出现故障都会破坏整个流程。

如果我正在考虑将 Jamstack 用于某个特定项目,而且总共真的有十二种服务,我可能会重新考虑,尤其是如果我可以使用 WordPress 等工具,并将它缩减为一种服务。Jamstack 还有很多其他合理的批评,尤其是因为它还处于早期阶段。例如,“带有预览功能的 CMS” 的故事并不怎么好,而这恰恰是您在使用 WordPress 时根本不会考虑的功能,因为它显然拥有该功能。

而且 Jamstack 可以做一些让我珍惜的事情,这些事情远远领先于时代。基于 Git 的部署?所有网站都应该拥有该功能。拉取请求的预览?太棒了。小于 100 毫秒的首次请求?求之不得。无需费心缓存?太好了。赶上吧,其他堆栈。

我的意思是,这里有一些选择需要权衡。您通过做您可能一直在做的事情来实现这一点:穿上您的成人裤子,思考您的项目需要什么,然后选择最佳选项。

我有一些生产环境中的 WordPress 网站。就像这个网站!很棒!

我有一些生产环境中的 Jamstack 网站。比如 这个网站! 它不是一个复杂的 Web 服务。它是一个静态网站生成器,GitHub 仓库中的内容通过 Netlify 部署。虽然 CSS-Tricks 可以做大约 100 件事,而这个网站做不了,但它有一些 CSS-Tricks 做不了的技巧,比如 接受内容的拉取请求

我觉得自己在所有情况下都选择了非常好的方案。

  1. 虽然 Matt 显然有动力为 WordPress 方法辩护,但我感觉这里的意见是真诚的;部分原因是 Automattic 投资了替代堆栈方法,而且 WordPress 和 Jamstack 并非相互排斥。我很喜欢对这个问题的回应,比如 Ohad Eder-Pressman 的 公开信,其中也充满了具有激励意义但真诚的想法。