介绍

我们先得知道什么是Jamstack,其实很多博友已经在使用这种方案了,如昱行木木 等,引用Jamstack的介绍如下:

Jamstack is an architectural approach that decouples the web experience layer from data and business logic, improving flexibility, scalability, performance, and maintainability.

Jamstack removes the need for business logic to dictate the web experience.

It enables a composable architecture for the web where custom logic and 3rd party services are consumed through APIs.

以我的认知来看其实就是我以前学编程开发时的 MVC 架构,也就 View:展示数据Control:业务逻辑Model:数据模型 ,其实核心思路就是让各个部分只负责自己该做的,前端就单纯负责展示数据,后端则单纯只提供数据,实现一种解耦状态,提高灵活性、性能、拓展性等等。

平时博客圈子里的hugo、jekyll、hexo等工具都是一种Jamstack架构,如昱行用的是Astro,木木用的Hugo,这两个工具都是负责前端部分,而数据则是文件系统,也就是Markdown文件,这些文件可以几乎无损的情况使用所有的支持md文件的站点生成器,达到了一种 解耦 状态,这些工具统称为 SSG(Site Generators) 。

而我用的Ghost也可以达到类似的效果,只不过Ghost的身份在Jamstack中是作为CMS (Content Management System),内容提供者的角色(Ghost自带的前端是动态网站),类似上一段中提到的md文件系统,而前端则可以用任何支持JSON数据的站点生成器,如:Gatsby、Gridsom、11ty等。

另外Jamstack架构的网站访问速度会比较快,且服务器压力会比较小,你甚至可以通过CDN系统把 文件分布在全球的服务器节点上,你的服务器甚至可以是零压力。
因为这些生成器都是将内容预先生成为最原始的网站结构 html ,也就是人们常说的静态网站结构,访问这些网站时会展现预先生成好的网页文件,而不是做一堆数据库读取器操作增加服务器负担。

目前用的啥,用的怎么样?

Ghost我已经使用了差不多五六年,多年迭代的它可以说是一个算是比较成熟的博客程序了,集成了会员管理系统、订阅系统让一些内容创作者可以更好的变现(我好像都没正儿八经用上),且在Jamstack.org的CMS排行榜中也是位居第二,超过第三位的Direcuts一倍的Star,默认情况下他是一个动态网站,也就是访问页面时去数据库获取数据进行展示,这一点和Wordpress一致。

那我目前的状态用必要使用这种架构吗?我整理了我现在的状态:

  • 网站速度:因为用了比较简单的模板和国内的服务器,网站默认状态下速度已经很不错了,前些天使用了 Quickllink 的情况下浏览体验更上了一个台阶。
  • 编辑器:Ghost的编辑器以前还有些毛病,输入中文老是调字,经过这么多年现在已经越来越好了(偶尔还是会有)。
  • 主题:Ghost经营这么多年已经有了非常丰富的主题库,很多收费主题漂亮的不行,比如 她的蓝 所用的主题,而且我也比较熟悉Ghost的模板语法和结构,自己也做过不少主题迁移。
  • 网站负载:我目前日访问量也就两位数,服务器完全能承受(这还是搭建了七八个其他服务的情况下)。

为什么犹豫了?

所以我自然不是以上面的需求作为出发点考虑Jamstack ,我最初是因为恰好在冲浪的过程中发现了Gatsby、Gridsom、11ty等工具,他们都有丰富的插件系统或接口,可以同时整合各种内容系统,如:md、rss、json、数据库等,并将这些数据生成为静态网站,所以我当时的想法是以将博客系统和Obsidian结合做一个All in One的数字花园。

但是我为啥犹豫了?

其实我这一个月都在研究这些工具,时间有限、水平有限,所以只能浪费了巨量的工作时间摸鱼,但是这已经严重影响到了我的正常工作。

所以我开始思考,我为什么非要All in one呢?而且数字花园的工具其实非常多,如Quartz、Flowershow等,而且我的Obsidian一半是工作内容,一半是可以展示的笔记,一些md文件当时新建的时候也没有做数据规范划处理,如果要展示还得做高强度的整理工作,而且也没有笔记非要把数字花园展示出去,另外即便展示出去意义也并不大。

所以我今天忽然释怀了,想通了。
Jamstack的所有痛点其实并不是我必须的。

其实想要分享知识、观点,不如像这篇文章一样把平时收集记录的知识进行提炼,输出一些真正有用的知识,达到足以影响到一些人的效果更来的有意义,而不是单纯的作为展示炫耀的一个工具和渠道。

后话

不要被工具蒙蔽了你的初心,人们创造工具的最初目的是优化生产,便利生活的,如果你使用了工具反而对你的生活造成了负影响岂不是已经违背了初衷吗?

以字为镜,以神为笔。
写作可以和自己对话,发现一个真正的自己,