NotionNext项目运行原理

category
tags
type
status
slug
summary
date
Last edited time
Dec 10, 2024 05:50 AM
icon
password
状态
天气
星期
日期

关于本篇

在这里我简单介绍一下NotionNext项目的运行原理,以及Notion、Vercel、NotionNext三者的关系。

关于解决方案

传统的网站建设,可能会用到的方案:
  • 首先:租一台云服务器
  • 其次:将网站的代码,例如WordPress或自研的网页上传到到服务器中;
  • 然后:在服务器中自行部署一个数据库,或者向云服务商购买一个数据库。
  • 接着:以服务器为核心,运行代码,并从数据库中读取网页数据。
  • 最后:购买一个域名,将域名绑定在这台服务器的ip地址上。

对比

NotionNext的站点本质也是一样的,只是做了元件的替换,即:把服务器、代码、数据库换了别的替代方案。
  1. 首先:注册了一个Vercel云平台:主要提供CPU算力、内存空间、运行代码的环境。
  1. 其次:注册了一个Github平台:主要提供协同开发能力、提供代码存储与版本管理。NotionNext的代码就可以托管在平台进行维护。
  1. 然后:注册了一个Notion笔记:将文字、图片等内容存储在笔记中,
  1. 接着:以Vercel为核心,从Github中拉取最新版本的代码、编译运行、并从Notion中读取网页数据。
  1. 最后:将购买的域名,解析到Vercel云平台提供给我们的服务器地址,Vercel负责将域名进一步解析到我们的项目上。
 

小结

这里我们可以看到,Vercel替代了服务器的概念Notion充当一个数据库NotionNext则是核心的代码
按我的个人习惯来说,之所以选用这种替代方案,取决于三个痛点:
  1. 写作:用Notion写笔记的方式来写文章更加舒适而且长远可持续。用公众号编辑、WordPress后台、用第三方博客平台发布页来写文章,要养成习惯太难。用自己的笔记本写东西才能让我不费力,或者用着舒服,这样才有可能做的长久,做的长久,才有可能做得好。
  1. 维护:服务器的安全、升级,数据库的备份、维护,需要耗费一些精力;更可怕的是这种折腾服务器的成就感会让人上瘾,你会不断地从搭建服务器、搭建网站的过程中获得”甜头“,从而沉迷于折腾软件技术。
  1. 费用:服务器、域名、我只想发布博客文字,有必要那么贵租一年的服务器吗?

工作流程

接下来,看看这个项目的首次安装、运行,与更新、升级配置过程中,发生了哪些事?
 

首次安装

Vercel部署NotionNext》这篇教程详细介绍了部署的方法;部署的过程发生了什么呢?
 
  1. 用户首先要复制我的Notion数据库作为模板
    1. Notion充当数据库的角色,所有支持的表头和字段,都已经在NotionNext代码中固定了,如果表头字段不一致,将导致数据无法被正常读取。
      用户复制模板的这一过程就相当于在Notion创建了一个属于自己的、NotionNext能识别的数据库。
  1. 用户注册Github平台,并且复制一份NotionNext代码
    1. 代码是核心,但是如何做到所有用户都能公开拉取到代码,并且还能随时更新代码,甚至一起参与到代码的开发呢?
      Github就是一个程序员们最爱的代码协同管理平台,他就类似于腾讯云文档这样的软件,大家都可以参与一个文档的在线编辑,还可以有版本管理的功能,可以记录并回退到任意一个版本中。
  1. 注册一个Vercel平台
    1. 前面已经解决了代码和数据库的问题,最后就是解决服务器的问题。
      登陆Vercel后,你可以选择将代码上传到Vercel平台中进行部署。但Vercel支持一个更强大的功能,就是直接与你的Github仓库建立实时链接。
      Vercel将24小时监听你的Github仓库代码,一旦发生更新或改动,它会自行到您的仓库中拉取最新代码,进行打包编译。
      从而实现:你无需关注服务器与部署,只要管好自己在Github中的代码即可。打个比方,这时候你是公司的开发人员,只负责代码规则;服务器的运维任务则交给了一个24小时在线的团队管理。

NotionNext的运作过程

Vercel 云计算运行 NotionNext代码,不断从你的Notion数据库拉取文章,排版成网站。Notion数据发生变化后,网站数据也会跟着改变。
如果用纯技术的语言来描述可能比较晦涩难懂,我接下来用打比喻的方式来介绍这个项目的工作原理。

NotionNext小店

NotionNext搭建的站点像一个小餐馆,店铺有招牌门头、有来自网络的客流。
客人可以看到店铺的门面、进店查看菜单、并选择要点的菜。
notion image
店铺与传统餐饮店不同,店里没有烹饪菜品用的厨房,没有专业的厨师。所有菜都是从Notion那边进货的预制菜;Notion是NotionNext店铺唯一指定的供应商、又或者可以称之为中央厨房
notion image
店里有很多“店小二”,店小二是由Vercel云平台提供的CPU、硬盘、内存等构成的员工,他们听从门店的指挥、按照代码设计好的店规办事。
notion image
店小二主要做两件事:
  1. 客人点菜时他们将Notion进货的预制菜,放进微波炉加热一下,从而变成可食用的状态。
    1. notion image
  1. 将菜品呈在盘子里给客人上菜。NotionNext默认提供多种盘子的主题、例如Hexo、Gitbook等。
    1. notion image

节能减排的NotionNext

NotionNext是一个提倡节能减排的店。
店铺首次开张时,会从Notion把每种菜都进一批货,把这批菜品就保存在仓库里(仓库指的是Vercel的硬盘和内存)。
当店里没客人时,店里的员工一动不动;店员不会主动去热菜、不会去进货、也不用招呼客人,甚至店里为了省电都不开灯。
Vercel店员有一个特点,他们都是外包的临时工,或称共享员工。当店里没事情做时,他们会按照Vercel人力资源公司的调度,去到别的店里打工。
当客户通过网站地址访问店铺,需要有人干活时,Vercel会自动在第一时间调人过来帮忙。

上菜流程

如果店里来了客人,会发生什么?
客人走进店铺的大门,店里会派出一名小二,扮演跑堂的角色,他们会关注客人的一举一动,例如客人眼睛看向哪道菜,或者手指指向哪道菜,小二都会通过对讲机通知后厨检查库存并提前热菜。
如果有客人要点某道菜,上菜流程是怎么样的?
如果客人径直走进店铺,还没坐下就点了一道菜。这时候,跑堂会通知店小二会去仓库里找这道菜,看看是否有没有上次取来的库存:
若有,就先把这道库存菜拿来,微波炉热一下,然后呈在盘子里拿给用户;同时会通知后台派另一个“店小二”,去Notion取一下最新的菜,取回来后放在仓库里备用。
若仓库没有客户想要的菜,店铺就会让用户等一会儿,让小二加急去取菜,取到了马上给用户热菜、 上菜。
那这样用户访问的体验会不会不好?有的上菜慢,有的菜都凉了、或者不新鲜。
关于上菜慢的问题,客户来点菜时,小二会一次性热好几道菜,并且设定菜凉掉的时间,例如10秒钟,在这十秒内有新客点这道菜的话,小二不用热菜也可以直接上。超时的菜就要“回炉重造”。
关于菜品不是最新的,小二虽然不会主动去Notion取新菜,但是上个客户来点菜时,店小二会同时去检查有没有新货取来备用。这样后续新客来店里就能刚好吃上最新的菜。这样设计流程的特点是:被客户点的频繁的菜,更新的也勤快;客户不常点的菜,即使是再新鲜的热菜又有何用?店铺里往往是20%的菜品带来80%的收益,剩下的80%的菜只是陪衬。
另一方面,客人通常品尝不出菜是否新鲜。你肯定觉得老板是奸商、但这就是事实,商人除了考虑口碑,还要考虑成本和效益,在用户能够接受的情况下,尽量降低成本。
若你研发了一道新菜在Notion里,想让NotionNext店铺的客户第一时间能品尝到要怎么做?
很容易,自己点一单。
你自己作为客户,到店里,指名要点那道菜即可,小儿会帮你去备好菜。类似于给自己刷单。
另外,还有一种笨办法,就是店铺打烊并重新开张,让小二去重新进货(这就是在vercel后台redeploy的过程)。

更新站点

前面讲到NotionNext这家店的上菜流程,接下来讲讲和Vercel、Notion的合作关系,也就是店铺的升级迭代。
店铺开久了,难免想升级装修门面,或者培训员工提升一下工作效率。这时候发生了什么呢?

NotionNext加盟店

NotionNext其实是一个连锁加盟品牌。
notion image
品牌维护、运营中心在tangly的中央仓库中,tangly日常负责规划设计NotionNext的工作流程、打造NotionNext旗舰店铺的装修样板。并把这些跑通的流程记录在运营手册,也就是代码中。
⚠️
NotionNext店铺的运营手册指的就是项目的代码。
notion image
 
任何人都可以通过复制手册的方式免费加盟。
当有新版的NotionNext店铺运营手册出来后,其它加盟商可以获取最新的“装修方案”、“员工培训手册”、从而带回去提升自己的门店运营效率。
这时候作为加盟商要怎么升级自己的门店呢?
首先,要获取最新的运营手册,手册在tangly的github仓库中,通过同步代码的方式就可以获取最新的手册。
我们的所有加盟商都享有终生免费更新手册的权益

更新手册的问题

需要注意的是,这时候有的加盟商会更新手册失败,这是因为他们在运营自己的店铺时,对手册做出了一些个性化的修改,从而更加符合自身的运营策略和使用习惯,从而导致合并手册的过程中出现分歧。
这种现象是常见的,毕竟不同地区、口味不同,有的菜谱偏咸,有的菜谱偏甜,不可能一个方案适用所有用户。
 
通常这里会有几种处理方法;
⚠️
这里的手册比喻的是你的Github代码。
  1. 加盟商备份自己的手册,先完全照搬Tangly的手册运营店铺覆盖自己当前的手册、确保店铺能正常运营。然后再按照自己备份的个性化手册,一点点微调新版的手册内容。
  1. 资深专业的职业经理人,可以做到一边合并手册,一边核对条款的冲突,直接合并成最终版手册。
  1. 请总部过来指导,tangly会根据加盟商自定义手册的方式,为加盟商量身定做出最适合加盟商的版本。
 
💡
加盟商只需要做好手册的更新,Vercel会自动派店小二来按照手册装修店铺、培训小二。

一些优化的体验

有的加盟商发现,更新手册时遇到很多冲突很麻烦,但是又想定制化,该怎么办?
NotionNext 支持你直接在自己的Notion数据库中定制手册,也就是NOTION_CONFIG
 
店小二除了听从NotionNext店铺的规则外,也会从Notion中取来NOTION_CONFIG作为本地化的规则,且它的优先级高于总店的规则。
 
NOTION_CONFIG中可以支持用户配置自己的装修样式和运行规则,如果不希望再升级店铺时本店手册与总店手册冲突,可以尝试一下。
 
另外,有的店铺想要自行设计店里的餐盘和门店的样式,我推荐加盟商在手册中,另外创建一个附件,在里面编辑自己的内容,而不要改动现有的手册内容。
这里的附件指的就是,加盟商创建自己的主题文件夹,而不是修改现有主题的内容。例如复制一个hexo主题,然后命名为new主题,然后都在这个new主题里修改即可。

最后

感谢您的阅读,文章暂时更新到这里,后面有想到新的内容再更新。
Prev
Vercel绑定自定义域名
Next
Vercel部署多个Github网站
Loading...
Article List
Notion开源、免费、快速建站
✨ 更新日志
🚀 安装部署
✒ Notion教程
🛠 站点配置
⭐ 主题参数
📊 网站统计
📩 评论插件
🧷 外部扩展
⌨ 开发教程
🔊 运营教程
👨‍👦‍👦 获取帮助
💪 支持我们