2021.07.28 13:41:18
去年3月,正是疫情最为猖獗的时候。社会原有的秩序被打破:学校停课,工厂停转,上班族也被迫在家待着。
现在想起来,这一段时光似乎依然触手可及。桌上放的口罩,电脑里网课的声音,学校门口的测温枪,医院门口的发热患者通道,如此真实。
也正是那段无聊的日子,使我萌生了想做点什么的想法。
在一位好朋友的安利下,我成功入坑了一个阿里云服务器,并开始接触网页制作技术(也就是html5,css3)。
于是,我便想做一个属于我自己的网站。
首先是首页。我偶然看到了一个不错的模板,在一位热心人的帮助下,我很轻松就得到了它的源码。
“有了首页,要不要再做些什么?”正好,那时收集到了一些工具和资料,于是最终决定,做一个储物间。与此同时,因为那时我还是信息部副部长,我还做了一个教程站,想帮他们学习一些计算机相关的知识。
最初,这些网页都是我用html5纯手写出来的。每次更新的时候,都要上传到服务器上(所以也就熟悉了Linux),我甚至写了个自动上传脚本。不过总归是很麻烦。
后来,我的那位好朋友又提出要做一个社员管理系统。那是我第一次正式接触PHP。在发现它的语法很像C语言后,我就很顺畅地上手了。
那时,我甚至不知道,我所谓的“储物间”,其本质上就是一个博客,所以我长期同时维护着三个子网站(除了前面两个,还有一个wordpress博客)。
后来,教程站停止维护了。教程都迁移到了博客里。再后来,服务器环境出问题了,重置之后数据库热备份的数据不能恢复,差点丢了所有的心血(虽然没写多少)。于是对于wordpress和数据库,我也不太想接触了。这期间,我一直在用PHP升级我的储物间。先是添加了一个文章编辑器,后来又添加了个文件管理工具……后面又添加了一些其他的服务器管理功能。于是经过不断迭代,我出了前6个版本。
在决定写第七个版本之前,我看了下乱成一堆的储物间目录,决定只用一个PHP脚本实现所有功能;抛弃数据库,文章都以markdown文件形式储存。同时在那位好朋友的提醒下,我幡然醒悟,原来,所谓的储物间,就是博客啊。
推出第七个版本之后,我一直在用面向过程的思路去写。虽然也很好用,不过每当我需要更改一些功能的时候,总觉得很麻烦。
于是,便有了这一版博客:神社的储物间v7.2.0
在做到纯粹的面向对象的同时,我也坚守了我的想法:所有内容写在一个文件里,不过组件确实是解耦合的。我不但做到了,而且感觉做得比较整齐。
在新增功能以及改动原来功能的时候,我深切体会到了面向对象优势之巨大。现在这个版本,即使添加了很多功能,程序也基本没有bug。只要做好每个组件,明确每个函数的使用范围,就基本不会出问题了。
费了老大劲,虽然是把这个版本做出来了,不过在接触了新技术之后,还是感觉有些地方做得不太好。比如移动端UI的适配不是很好,前后端的分离做得比较乱,旧版的一些已经不太好用的功能依旧没有重写更新。
不过总而言之,这是一个里程碑式的版本。因为经过我的认真思考之后,重新规划的程序结构清晰了许多。
写这个博客系统的目的不光是找些事做,记录一些东西,同时也是为了记录我的PHP学习历程。
作为我的第一个能称得上很有用的程序作品,我会一直优化它,升级它——
即使,这只是一个出生在博客已经不为人所关注的时代,小得不能再小,基本没有人会看的,一个简简单单的博客。
最近(2022.11.15)又换回hexo了一段时间。怎么说呢,又找回了那种纯粹写作的感觉。只需要在编辑器里写好,剩下的只需要跑一下deploy脚本,就能把所有东西扔到网站上了。特别是搭配上github pages,实在是妙不可言。
遂重新思考这个动态站还有没有意义。不过很快我就发现这是一个蠢问题:就算没意义我也会去维护它的,这就是代码的乐趣啊。
最近又接触了下docsify,学了下前端路由,发现之前的“前后端分离”,其实就是模板引擎后端渲染而已。静态站的速度实在是美好,以至于我有点想尝试下纯前端+PHP API了(当然用别的也行,Golang就不错)。
而且以前的代码量之所以巨大,就是因为考虑了在线编写的需求。现在自己一般不会这么干了,所以这部分用其他方式解决就好。这样,只保留核心代码,应该能整个更好点的博客系统出来。