写点什么

重塑 Jamstack:打造更简单、更强大的 Web 架构

  • 2024-03-05
    北京
  • 本文字数:2491 字

    阅读完需:约 8 分钟

大小:1.18M时长:06:53
重塑 Jamstack:打造更简单、更强大的 Web 架构

本文最初发布于 THENEWSTACK。


图片来自 Unsplash,由 Rob Wicks 提供

 

随着互联网架构的发展,Jamstack已经变成了一个富有成效的存在,尽管有时会引起争议。2015 年,Netflix 首席执行官Matt Biilmann创造了这个词。它是由组成它的各种技术拼凑而成的——其中“JAM”来自 JavaScript、API 和 Markup。但是,经过几年的快速发展,2023 年,Jamstack——无论是作为一种架构还是作为一个开发社区——开始出现一些小问题

 

对于开发人员来说,曾经简单直接的 JavaScript + API + Markup 方法已经变得越来越复杂。此外,去年,Netflix开始与Jamstack社区保持距离,关闭了 Jamstack Community Discord,并将宣传重点从 Jamstack 转向“可组合架构”主题。

 

那么 Jamstack 现在怎么样了?我与来自社区的不同成员进行了交谈,了解他们的关注点,以及他们将 Jamstack 推向下一阶段的想法。

 

Jamstack 的膨胀

首先,Cloud Cannon 首席执行官Mike Neumegen指出,Jamstack 复杂性增加的部分原因是其定义的扩展。

 

Neumegen 说:“由于开发人员在使用 Jamstack 时遇到了实现限制,所以其生态系统中的框架用更复杂的新方法解决了这些限制。后来,为了将这些新方法包含进来,Jamstack 持续扩展其定义。虽然这些方法为大型 Web 应用程序开发提供了强大的工具,但这种循环使 Jamstack 变成了现代 Web 架构的一个笼统术语。围绕 Jamstack 初始核心特性(比如可移植性、无配置缓存、预渲染、原子部署,以及最重要的简单性)的讨论少了。”

 

Pixel Point 开发者兼首席执行官Alex Barashkov也认为,复杂性增加已经成为 Jamstack 面临的一个问题。Barashkov 说:“Jamstack 提供了灵活性,但是 JavaScript 工具的范围太广了。选择合适的工具需要花费不少的时间,因为你需要确保它们不会消失,并且将来更新时不会有问题。鉴于有些东西在 Ruby on Rails 或 PHP 中更容易实现,Jamstack 社区正在不断地通过创新解决方案来弥合这些差距。”

 

其他开发人员提到了 Jamstack 开发的膨胀,并提出需要更简洁、更实用的方法。来自挪威的兼职开发大使Benedicte Raae说,“对于 Jamstack 的概念/架构,其扩展需求可能并不像人们想象的那么普遍,很少有 Web 项目需要这些工具提供的扩展。我刚刚和一个在奥斯陆拥有 300 个本地客户的团队交谈过……他们不需要超快的、全球复制的边缘计算之类的东西。也许他们只需要一把手动螺丝刀,而不是电钻。”

 

Jamstack 的 What、When、Why 和 How

Postman API API Client 主管Dustin Schau认为,就连“Jamstack”这个术语也已经成为问题的一部分。他说,“据我观察,一个主要问题是,人们并没有真正地理解这个术语。JAM (JavaScript、API、Markup)非常不精确,任何技术栈都可以说成是这个术语的具象。举个具体的例子,我记得,当 Next.js 将自己定位为 Jamstack 时,它完全是在服务器端渲染的,而且是在框架支持静态导出之前。一个令人困惑的术语就是存在这样的风险,它可能被用来迷惑开发人员或市场,因为从技术上讲,它是由 JavaScript、API 和 Markup 组成的,但那没有体现 Jamstack 的原则。”

 

与我交谈过的其他开发人员也表示,Jamstack 的表达力越来越弱。它是一个笼统的术语,让开发人员和整个行业感到困惑。演讲者兼独立开发大使Stefan Judis说,“在过去几年里,‘Jamstack’这个词变得毫无意义,其传递的信息和定义从 CDN 提供的静态和预渲染 HTML 转变为(Netflix 现在在其网站上描述的)‘一种将 Web 体验层与数据和业务逻辑分离的架构方法,为的是提高灵活性、可扩展性、性能和可维护性’。这种重新包装缺乏差异化和独特性。对我来说,Jamstack 成了利用 API、SaaS 和边缘计算的‘现代 Web 开发’的代名词。”

 

下一代 Jamstack

虽然 Jamstack 当前面临着上述问题和挑战,但与我交谈过的开发人员也相信,Jamstack 的底层架构会得到改进和增强,并提出了一些需要改进的、有助于 Jamstack 后续发展的领域。

 

Barashkov 说,“从技术的角度来看,Jamstack 需要跟上技术发展的趋势,比如 React 服务器组件(RSC)和 HTTP 流。Jamstack 应该为开发人员提供使用这些现代工具和库的直接建议。我相信,Jamstack 应该变得更加简单且特性鲜明,使得项目启动更快、更简单,而不必每次都从头开始。这种方法有助于加快开发过程,使项目更加一致、高效。”

 

消除那种复杂性,使 Jamstack 回归简洁明了的本源,是我与之交谈过的开发者之间的共鸣。为开发人员提供更多关于 Jamstack 最佳实践的指导,并清楚地定义 Jamstack 是什么——同样重要的是,它不是什么——也是一些得到很多支持的主题。

 

Neumegen(他的公司 Cloud Cannon 赞助了正在崛起的 Web 框架Eleventy)说,“Jamstack 一词是 2015 年被创造出来的。它倡导通过一种更简单的 Web 开发方法来应对单体系统的复杂性。近十年后,Jamstack 已经发展到面临自身复杂性挑战的地步。最好的改进是回归 Jamstack 的基本原则:预渲染内容并将前后端分离。它不必适合每个用例或吸引每个开发人员,这完全没问题。Jamstack 应该是 Web 开发简单性的拥护者。”

 

和 Neumegan 一样,Schau 强调说,Jamstack 成功的核心要素仍在,但他也指出,降低复杂性和提高性能将有助于 Jamstack 继续朝着积极的方向发展。

 

Schau 说:“不管是以前还是现在,Jamstack 的架构优势对那些关注性能和简单性的团队来说仍然是有益的。像 Astro(还有 Gatsby)这样的伟大工具完全符合我所认为的 Jamstack 原则的主要价值主张。因此,如果你的业务可以通过静态生成的、提供少量交互性的网站来维持运转,那么我强烈建议你的团队默认使用更简单但性能更高的工具来构建。”

 

未来之路:性能卓越、简单清晰

Neumegen 认为,要解决 Jamstack 的推广和信息传递问题,就需要提供更严格的 Jamstack 定义,遵守该定义的核心原则,明确说明 Jamstack 方法的优缺点,创建管理术语和社区的基金会,并提供一个社区活动空间。事实上,Cloud Cannon 最近创建了一个网站TheFutureOfJamstack.org,并在上面分享了他们对 Jamstack 下一步发展的想法和观点,以及该架构应该或不应该向哪发展。

 

Neumegen 说,“那是基础。从那里我们可以开始社区的重建。”

 

声明:本文为 InfoQ 翻译,未经许可禁止转载。

 

原文链接:https://thenewstack.io/the-state-of-jamstack-developers-want-return-to-simplicity/

2024-03-05 15:165253

评论

发布
暂无评论
发现更多内容

爆肝!《Java权威面试指南(阿里版)》,冲击“金三银四”有望了

程序知音

Java java面试 java架构 后端技术 Java面试八股文

在字节跳动,造赛博古籍

字节跳动技术范儿

后端 nlp 搜索 OCR 多模态

Wallys/QSDK IPQ6010/wifi mesh function supports qcn9074/qcn6024 M.2 E Key Interface

Cindy-wallys

IPQ6010 ipq6018 IPQ6000

多模并起,万向融合 | 2023年2月《中国数据库行业分析报告》精彩抢先看

墨天轮

数据库 HTAP MatrixDB 多模数据库 超融合数据库

前端监控之性能与异常

京东科技开发者

监控 服务端 页面 企业号 2 月 PK 榜 js代码

测试角色在项目各阶段的项目管理tips

京东科技开发者

项目管理 测试 测试 单元测试 企业号 2 月 PK 榜

LeetCode题解:2357. 使数组中所有元素都等于零,排序,详细注释

Lee Chen

JavaScript 算法 LeetCode

行云管家属于高新企业吗?安全吗?

行云管家

云计算 网络安全 高新企业 云管理 高新技术

颜色的认识与使用(大屏颜色/仪表板报告设计)

Data 探险实验室

大屏配色 颜色 可视化颜色 配色搭配

云数据库TiDB-试用

TiDB 社区干货传送门

管理与运维 版本测评 安装 & 部署

TiDB x Aliyun 免费试用,竟还有这般福利?

TiDB 社区干货传送门

社区活动 版本测评 6.x 实践

ZBC通证月内已翻倍,Nautilus Chain 上线前夕的“开门红”

股市老人

不要 ChatGPT,我们要你!2023 涛思招聘季重磅来袭~

TDengine

数据库 tdengine 时序数据库

C++中const和constexpr关键字解析:常量、函数和指针

小万哥

程序员 后端 开发 C/C++ const

互联网企业如何进行数字化转型?业务需求迭代频繁的应对之策!

优秀

数字化转型 互联网行业

EasyNLP集成K-Global Pointer算法,支持中文信息抽取

阿里云大数据AI技术

人工智能 深度学习 信息抽取 算法模型 企业号 2 月 PK 榜

数据库审计有什么用?过等保三级需要吗?

行云管家

数据库 等保 等级保护 数据库审计

中冶赛迪:基于鲲鹏DevKit开发智慧城市基础设施管理平台,性能提升47%

Geek_2d6073

华为云CodeArts Artifact,5大特性守护制品质量与安全

华为云开发者联盟

云计算 开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

Fine BI、Smart BI怎么办,瓴羊Quick BI已经可以提供移动端自助分析整体解决方案!

对不起该用户已成仙‖

英方软件加入龙蜥社区,联手夯实数字基础设施坚实底座

OpenAnolis小助手

开源 数据复制 英方软件 龙蜥社区 CLA

LeetCode题解:2357. 使数组中所有元素都等于零,哈希表,详细注释

Lee Chen

JavaScript 算法 LeetCode 哈希表

DevEco Studio 3.1 Beta1版本发布——新增六大关键特性,开发更高效

HarmonyOS开发者

HarmonyOS

云数据库TiDB免费试用初体验

TiDB 社区干货传送门

社区活动 6.x 实践

云数据库 TiDB 入门级别的体验

TiDB 社区干货传送门

6.x 实践

ZBC通证月内已翻倍,Nautilus Chain 上线前夕的“开门红”

鳄鱼视界

云小课|MRS基础原理之Hue组件介绍

华为云开发者联盟

大数据 华为云 企业号 2 月 PK 榜 华为云开发者联盟

在流媒体时代,如何看待音乐版权?

曲多多(嗨翻屋)版权音乐

知识产权 音乐 版权

即时通讯技即时通讯技术文集(第8期):移动端弱网优化系列 [共14篇]

JackJiang

云数据库 TiDB 初使用

TiDB 社区干货传送门

版本测评 安装 & 部署 性能测评 扩/缩容 6.x 实践

重塑 Jamstack:打造更简单、更强大的 Web 架构_架构/框架_Jeff James_InfoQ精选文章