JAMstack - 基于客户端JavaScript,可重用API和预构建标记的现代Web开发体系架构

当我们谈论“栈(stack)”时,我们不再谈论操作系统,特定Web服务器,后端编程语言或数据库。JAMstack与特定技术无关。这是一种构建网站和应用程序的新方法,可提供更好的性能,更高的安全性,更低的扩展成本以及更好的开发人员体验。

什么是JAMstack?

如果符合三个关键标准,您的项目就是使用了JAMstack构建:

  • J (JavaScript)
    请求/响应周期中的任何动态编程都由JavaScript处理,完全在客户端上运行。这可以是任何前端框架,库,甚至就是普通的JavaScript。
  • A (APIs)
    所有服务器端进程或数据库操作都被抽象为可重用的API,通过HTTP和JavaScript进行访问。这些可以是定制的或者是利用第三方服务。
  • M (Markup)
    模板化标记应该在部署时预先构建,它们通常使用内容站点的站点生成器或Web应用程序的构建工具。

什么样的网站没有使用JAMstack构建?

依赖于客户端和服务器之间紧密耦合的任何项目都不是使用JAMstack构建的。这将包括:

  • 使用服务器端CMS构建的站点,如WordPress,Drupal,Joomla或Squarespace。
  • 单一的服务器端运行的Web应用程序,它依赖于Ruby,Node或其他后端语言。
  • 单页应用程序,运行时在服务器上使用同构渲染来构建视图。

为什么要使用JAMSstack?

  • 更好的性能
    既然可以在部署时生成页面,为什么还要等待页面动态构建呢?当涉及到将收到第一个字节的时间最小化时,没有什么比在CDN上提供的预先构建的文件更好。
  • 更高的安全性
    将服务器端进程抽象为微服务API,可以减少攻击的表面区域。您还可以利用专业第三方服务的专业知识。
  • 更便宜,更容易扩展
    当您的部署相当于一堆可以在任何地方提供服务的文件时,扩展就是在更多的地方提供这些文件。CDN是最适合做这个工作的,在所有的节点都可以部署。
  • 更好的开发者体验
    控件的松散耦合和分离允许更有针对性的开发和调试,同时,对站点生成器的CMS选项的扩展消除了为内容和营销维护独立技术栈的需要。
0%