Jamstack for Newbies: 轻松创建快速和安全的网站

Jamstack是现代Web开发架构。

它使开发人员能够创建安全、可扩展和易于管理的Web应用程序。

在本文中,我们将探讨Jamstack的基础知识。它将帮助他们创建轻量级和安全的网站。

让我们开始吧。

Jamstack是什么?

Jamstack(以前称为JAMstack)是可组合的Web架构。其组件包括JAM、J代表JavaScript、A代表应用程序编程接口(API)和M代表标记。

当结合在一起时,这些现有技术为Web开发人员提供了创建、管理和扩展Web应用程序的工具。在2016年,Matt Biilmann在他公司的演示中引入了Jamstack,这是一种新的Web开发架构。Netlify

要真正理解,首先必须了解“技术堆栈”。

技术堆栈结合了开发Web/软件应用程序的工具、理念和方法。它可以包括编程语言、相关框架、库等。

从技术上讲,Jamstack是一种专注于通过消除业务逻辑中的数据来解耦Web体验层的Web堆栈。这样做带来了多个好处,包括性能、灵活性、可扩展性和可维护性。

与其他技术堆栈不同,Jamstack是可配置的,您可以选择自己的工具。换句话说,它作为一种“工作方式”,为开发人员提供了可定制的路径。例如,Jamstack开发人员可以使用API来提供自定义逻辑和第三方服务。

Jamstack与传统Web开发有何不同?

让我们将Jamstack与传统Web应用程序进行比较。任何传统的Web应用程序,如CMS(内容管理系统),都需要慢速的Web服务器,并且容易受到恶意攻击和技术问题的影响。

另一方面,Jamstack通过使用可组合的Web架构将网站的前端与后端分离来解决这个问题。它通过在运行时预渲染它们并让CDN将它们提供给用户,从而提供了更快、更安全的提供网页的方式。

总结一下,Jamstack基于提供静态站点,但通过API和JavaScript具有动态元素。您可以使用该方法尽可能多地创建预构建的标记,并使用API来提供动态内容。该方法将Jamstack用于托管静态站点,并使用云函数来提供数据和动态功能。

Jamstack如何工作?

Jamstack在静态站点开发方面具有重要依赖。它从CDN托管开始,CDN托管您的HTML页面,提供出色的速度。

不仅如此,开发人员还能感受到他们可以多快地改变项目。他们编写代码,进行Git克隆,构建项目,并通过简单的Git推送将其部署到目标文件夹。

例如,您的Jamstack网站可能由多个HTML文件组成。将这些文件放入代码仓库中,并使用静态网站生成器进行构建和发布。在其他情况下,您可以创建脚本,根据用户需求构建站点到静态网站,然后将其推送到CDN以为用户提供服务。

要真正理解Jamstack及其工作原理,我们必须查看其三个主要组件及其各自的角色。

Jamstack组件

JavaScript和Jamstack

JavaScript是一种流行的脚本语言,在Jamstack中发挥着重要作用。

Jamstack将前端和后端分离。对于前端渲染,Jamstack使用CDN和标记。对于后端,它实现了JavaScript和API,允许开发人员包含动态响应,同时提供个性化的用户体验。

简而言之,Jamstack中的JavaScript可以让您做两件事:

  • 根据用户输入在您的网站上包含动态功能。
  • 提供实时的前端交互功能,如下拉菜单、表单验证、动画等。

作为开发者,您可以选择一个JavaScript框架来创建动态行为。这些包括Vue、React和Angular等。

标记语言和Jamstack

Jamstack利用标记语言提供静态前端内容。这意味着您可以使用HTML或Markdown等标记语言来构建您的Web应用的前端。

由于标记语言更快,它使Jamstack应用具有实际性能。如果您在编译器时间渲染静态内容,然后将其传递给您的HTTP服务器,它就属于Jamstack类别。另一方面,如果您在运行时渲染它,则不属于Jamstack类别。

因此,您可以使用React来编译静态内容,然后通过CDN进行传递。

这也意味着您可以为您的项目使用流行的静态网站生成器。这些包括Next.js、Jekyll、Nuxt、Hugo和Gatsby。

此外,您还可以使用标记语言来执行页面内的SEO。这将帮助Google索引和排名您的网站。

API和Jamstack

接下来是API。它代表应用程序编程接口。

API在Jamstack中发挥着关键作用。由于Jamstack应用不依赖于Web服务器,它们必须使用API来添加功能或与第三方服务进行连接。例如,您可以使用API将支付网关添加到您的网站上。它还可以帮助您操作客户端数据,提供独特的用户体验。

另一个例子是使用GraphQL端点生成内容并在Jamstack网站上呈现它。

而且,如果您感到有创意,您可以创建自己的API来添加自定义功能,例如从持续更新的来源提供照片。

然而,您可以使用Headless CMS来完成所有这些。它使开发者能够通过API传递内容,同时消除了前端和后端都提供内容的需要。

为了给您一个现实世界的视角,如果您在使用传统的WordPress时同时使用其前端和后端,它将不是一个无头CMS。但是,由于它是开源的,您可以将其用作无头CMS,这消除了使用基于git的工作流和标记语言(如Markdown)从后端与内容交互的需要。

Jamstack的用例和使用时间

Jamstack可以与CDN很好地配合使用,让您创建高性能的Web应用程序。这样,您可以快速部署您的应用程序并更快地提供服务。

Jamstack最适合静态或伪静态网站开发。它的最佳用例包括创建企业/SaaS网站、自定义落地页、个人博客和Web门户。

在教育、政府、电子商务、营销、健康、娱乐和SaaS等各个行业,许多Jamstack站点都在使用。

一些使用Jamstack Web架构的知名网站包括:

  • Audible + Next.js
  • Bang & Olufsen + Next.js
  • Godot Tutorials + Hugo
  • Hulu + Next.js
  • Bitcoin.com + Gatsby
  • Verge + Next.js
  • National Geographic + Gatsby
  • SendGrid +Gatsby

还有许多其他网站!

何时不使用Jamstack?

然而,Jamstack不能替代其他Web开发过程。如果您正在构建以下内容,则应避免使用Jamstack:

  • 大部分时间生成非静态内容的网站。
  • 使用Python或Ruby等编程语言的单体服务器驱动的Web应用程序。
  • 使用Drupal或WordPress等传统CMS的网站。

此外,如果:

  • 你没有处理Jamstack的技术知识。
  • 你的企业没有预算来雇佣高技能的Jamstack开发人员。
  • 你是一名开始探索Web开发并偶然发现了Jamstack的开发者。尽管Jamstack听起来很简单,但实际上需要经验才能有效使用。所以,如果你是初学者,最好避免使用Jamstack。
  • 你依赖插件来为你的网站添加功能。Jamstack不采用这种方法,你可能会陷入困境。

Jamstack的好处

Jamstack的Web架构带来了多种好处,包括:

  • 利用CDN和Jamstack托管提供商的强大功能,创建高度可扩展的Web应用程序,并处理大多数与扩展相关的请求。
  • 开发人员可能会发现Jamstack应用程序易于维护,考虑到其前端和后端方面是解耦的。
  • Jamstack的不可变部署使其更快速地部署和维护。
  • Jamstack提供更好的安全性,因为它主要由静态文件组成,因此在其中漏洞的可能性较低。此外,其较少的解耦元素使其易于管理,降低了传统Web服务器攻击的机会。
  • 由于网站加载更快,企业可以从提高用户留存率、转化率和用户体验中获益。
  • Jamstack应用程序的成本低于传统应用程序,因为静态文件托管更便宜。CDN也可以在不需要投入大量资金的情况下进行扩展。
  • 它还提供了更好的开发者体验,因为应用程序的开发、部署和维护更加流畅。
  • Jamstack允许企业创建SEO友好的网站。你可以优化页面SEO,而无需依赖笨重的插件或流程来使你的网站可索引。

如何开始使用Jamstack?

要开始使用Jamstack,你需要选择工具。由于Jamstack是可配置的,你可以选择一个UI框架、静态网站生成器和用于前端开发的Web框架。接下来是选择用于管理内容的技术栈,包括API、CDN和云服务。

最后,你需要工具来部署你的Jamstack应用程序。目前,市场上有很多托管和部署选项。

让我们来看一下下面开始使用Jamstack的过程。

#1.选择一个Jamstack JavaScript框架

第一步是选择你自己的UI框架。然后,由于Jamstack的核心思想是提供静态HTML,你可以选择各种UI和JavaScript框架,包括Angular、Vue、React等。

这些UI框架使开发人员能够使用模块化组件构建应用程序。一旦创建完成,你必须将它们渲染为HTML和JavaScript,然后提供给浏览器。

这就导致了我们的第二步,选择一个静态网站生成器(SSG)。

#2.选择一个静态网站生成器

接下来,你需要选择一个静态网站生成器。有许多流行的静态网站生成器和Web框架可用于创建Jamstack应用程序,包括Next.js、Hugo、Jekyll、Nuxt.js、Astro等。

通过使用它,你可以预先构建静态页面并将其存储在CDN或云中。这意味着客户端无需等待生成,从而实现更快的加载时间。

#3.添加一个Headless CMS

你还可以给你的设置添加一个Headless CMS。Headless CMS将前端用户界面层与其后端内容管理系统解耦。在这里,头部指的是在浏览器上呈现给用户的内容。

如果您曾经使用过传统的内容管理系统(CMS),比如WordPress,您会注意到它将内容提供给网页浏览器。然而,通过使用无头CMS的选项,您可以将内容提供给不同的“头部”,例如应用程序、聊天机器人、内部系统等。

Jamstack支持许多无头CMS,包括Ghost、WordPress、Tina、Keystone等。

还可阅读:Best Open-Source Headless CMS to Try for Your Next Application

#4. 管理数据和后端功能

通过Jamstack,您可以使用不同的方法来管理站点的数据和后端功能。例如,您可以使用API或来自Azure、AWS或Google Cloud的自定义基础架构集成支付网关。另一个例子是使用Auth0为站点添加身份验证。可能性是无限的!

#5. 部署网站

部署网站的最佳方式是使用Netlify或Vercel等工具。它们提供了自动化的DevOps管道来部署您的项目。您只需连接您的Git存储库,这些工具会处理其余的事情。

一旦您部署,您将获得一个附加到主机名的唯一URL。当然,您也可以使用您的域名进行部署,以获得更好的曝光。

最后的思考

毫无疑问,Jamstack changes how we build apps是适用于Web的。其分离的方法意味着更好的安全性、速度和开发体验。

然而,您不应该将其与无服务器混淆,尽管它们可能具有某些相似之处。例如,您可以使用无服务器方法,在云中托管您的数据,但您也可以使用API来利用其他应用程序和服务,如WordPress(这并不是完全无服务器)。因此,两者是不同的。

总之,Jamstack是一种新而令人兴奋的现代架构。它提供了比缺点更多的好处,并允许开发人员建立自己的路径来开发快速、安全和可扩展的Web应用程序。

接下来,请查看用于个人和初创企业的static website templates

类似文章