关于博客系统二三事(一):梦开始的地方
这期我们来谈谈关于博客系统建设的一些思考
- 博客建设
- 优化
- 日常
- 长期更新
May 31, 2024
在刚开始写下这篇文章的时候我正在苦苦思考如何优雅的进行文章以及整个系统的常规更新方案,而且整个系统还是跑在localhost上的那种极简测试版。正苦于没思路之时突然想起我好像已经一个月没有写文章了,遂来水之(
那么这篇文章就来聊一聊那些关于建设这个网站的一些有意思的问题,和一些思考吧。大概率会长期更新哦(
为什么搭建自己的独立博客站点?
别问,问就是手痒
关于博客和CMS
关于自己建立自己的站点这个企划我在小学的时候就有了,限于当时的设计能力和技术水平,在当时服务器挂掉不在维护之前最高的技术力就是从codepen.io
上复制粘贴代码下来拼凑出一个网页。怎么说呢...就像一份乐高玩具一样,她从远处看起来还有个样子,但是实际上细心看看就会发现她就是各个零件东拼西凑出来的,一个活生生的赛博Frankenstein。既不美观,有没有创新性(但是还是很可惜存档好像丢失了,不论如何仍然是我小时候努力的痕迹)。好在最近高中毕业了,时间有一点小小的富足,而且在经过几年的时间之后技术力有所上涨,那么是时候完成小时候的梦想之一啦,我如是想到,于是就开始轰轰烈烈的基建计划了。
首先是前端,为了不让自己显得千篇一律,我的计划是直接自己手搓一套界面,使用现代的技术(指React
这些框架),也算是一种对小时候的自己的一种别样致敬吧。(碎碎念:这几年都在摸鱼,没怎么接触网页开发了,手感都生疏了嗷)
关于CMS...实际上市面上有大量的成熟的CMS,而且其中不乏有活跃的社区支持的佼佼者,包括不限于Wordpress
这种老牌选手,以及其他大量的headless-cms。他们都实现了非常丰富的功能,远高于我的预期,而这对于我来说带来了额外的性能开销实际上也没有多少(至少Wordpress
这种东西对于我的那个轻量级服务器有点过于重量了)。一些精简的CMS又显得有点不成熟(社区上),毕竟谁也不想自己的博客后端出了问题没人修吧(笑)。所以呢,自己写一套就非常合适啦,想要什么东西自己写,哪里出了问题自己一定可以修复,再也不用担心系统的可持续性啦~,至于现在的方案嘛,我会在稍后提及。
还有就是一些个人的精神洁癖问题,相比之下我更喜欢将自己的数据保留在自己手中,想象一下写个博客还要关联各种帐号什么的那些成熟的第三方平台......他们要求了太多功能刚性需求以外的东西,同时还非常慷慨的附赠了额外的第三方广告之类的影响网站纯洁性的东西,基于各种各样的这方面的考虑,自建就成了最好的解决方案啦。
最后一点,先不说自己使用自己写的软件听起来就非常炫酷什么小学生心态啊,拜托,“完全”“自主研发”的系统诶,那听起来可太好玩了((
这么做值得嘛?
值得一提的是,从零开始可以说不是一个非常友好的方案,特别是从时间利用效率上来讲,在你只考虑成品的情况下。这是一个非常耗时费力的过程,你需要考虑你的需求,和你“可能"会出现的需求。你需要一直去考虑综合的系统框架,同时你也会由于自己一开始的各种考虑不周导致连续狂敲键盘几天的工作成果付之东流。这无疑是一件非常沮丧的事,你将会在不断重构中度过接下来的几个星期,直到你的土制CMS满足了你的需求,或者自暴自弃的跑回去使用Wordpress
。
假如你只是想自建一个个人网站,那么类似Hugo
,Hexo
之类的静态网页生成器是你的好伙伴,她们完全可以满足大多数你对个人网站的期望,同时不用花大量心思去设计(不代表不能),搓css。静态网站更快,性能更好,建站更方便,甚至不需要服务器都可以。不论是从时间成本还是经济成本她们都是不二之选。我不使用的原因绝对不是因为我懒得翻看她们的文档
但是假如一个这样的站点对于你来说有着特别的意义,就像对于我来说这里是专属于我的王国,是一个独属于自己的社交媒体,是一种日记本,是一面面向自己的镜子,那么你就会自发的去建设,维护,发展这篇土地。你会发现可能现有的产品和工具无法满足你的需求,或者说就是没办法作出你想要的效果,那么从零开始也许是一个不错的选择,它不一定总是最佳的方案,但是也许和尝试去理解、修改各种现有的源码,这个方案是最有可能达成你的目标的,尽管他对个人要求相对较高。而且这个过程中你也会收获许多,比如说新的技术小知识,一些静下心思考、与内心交流的机会,和一个独一无二的网站,这些不那么起眼的事物,或许在这个娱乐致死的时代反而是更为珍贵的呢...
现阶段的项目构成?
说实话好像这部分不知道能写些什么,如果好奇源码的话可以来这里。总之就是前后端分离,前端是React,后端是Rust,中间层是Openresty(为将来可能的路由层小脚本做准备),目前的计划是通过容器化方案部署。
还是报个菜名吧:
前端相关
后端相关
OpenResty
:一个Nginx的扩展,支持内嵌lua脚本PostgreSQL
:我也不知道我为什么要采用她,以后找找看(?axum
:tokio
团队出品的Rust网络框架- 还有好多的还没写出来,以后更新(咕
关于博客系统二三事(一):梦开始的地方
https://lumither.com/blog/post/d8f2433b-0f7d-423d-9a3a-a7e6ebffd92c