三重捏造
从模版html到SPA再到SSR的山迳,及历史阶段性总结
前几天,将这个网站从单纯的SPA转为SSR的工作结束了,又花了两天将静态文件放入阿里云的OSS服务进行加速(因为是香港服务器好多CDN不能用)这下大部分工作都算结束了......接下来回顾一下这个拥有三副身躯,两个弃版的网站的构造史。
一定要明确自己的需求!
警惕欲望陷阱
当时0前端知识的我:
“SPA?流畅地(不用)切换网页好棒哦,但是为了这个效果要学一个全新的框架,值得吗?”我思考了好久后还是选择放弃,学习django的模版系统并摸鱼着做了几个月(刚开始做得又慢又摆)。
“vue组件感觉好棒,只用这**模版也太难写了吧?”于是我正式上了一套vue网课,将vue作为组件放在django模版里用......(又摸了几个月)
“......”
“达咩哒,这绝望的白屏切换也太丑陋了。”因为和设想中的动态连贯可爱的东西完全不同(现在也完全不同),痛下决心改为SPA。又在b站大学进修了vite课程后,我将整套模版网页废弃,重写了前后端分离的SPA项目。
完成大半的第一版废弃。
“SSR?SEO?也没有很想要啦,这种事情怎样都好。而且服务端渲染,服务器会不会很累呀?我的话一定会买个很穷的服务器……”这样想着,于是又一以贯之地摸了几个月。跨越了无数次愚蠢的,不知所谓的初次开发会遇到的苦痛和迷茫,终于揉出了一个可爱的,完整的,连贯的,代码混乱的,高耦合的,难以修改的单页网站。
我欣慰地摆弄着这个倾注了爱心编织出的小家伙,心里想到:是时候了。
我又回到b站大学,选修了nginx和服务器课程,并在权衡利弊后买了一个香港服务器。
(大概在一年前,我用学生新用户权益嫖了3个月的阿里云服务器,并买了域名。但是我高估自己的行动力了,那个服务器在死之前,cpu也没有转过。)
部署过程中,作为初学者,照旧痛苦不堪地遇到了解决不完的问题。万幸在我之前有无数的初学者和大佬走过这同一条路,因此我得以靠着他们的遗珍和瑰宝,将解决不完的问题也依数解决了。
感谢极客精神。
“他/她的网站能看到数据欸......欸?大家都是这样吗?果然......我也想要。”甚至连理由都不充分,秉持着“多多益善”的想法,我又决定将SSR纳入补完计划。我尝试了几个vite的ssr插件,得到的只有满屏的错误,大概不系统性地重构是不行了。于是我又进修了nuxt3,花了大概2周的时间,将项目迁移到了nuxt上。(vite 的第二版废弃,不过万幸大部分代码都能用)又琢磨了一下SEO和静态文件加速方案,大部分工作总算可以说完成了。
反思历史错误
可以不要但不能做不到,也就是说可扩展性。想要却发现做不到是一个微妙又可怕的征兆。当然,做不到只是时间的问题,只要花足够多的时间,当然什么也能做到。
最好在一开始就有大纲,有计划地设计草稿,并尽量少修改计划,也就是说一开始就考虑得周全一些,花更多的时间在需求分析和系统设计上。当然,项目进行中肯定免不了修改,设计只是为了减少这个频率和程度。修改的成本也会随着时间变大,所以前期准备得越充分越好,代码也最好从一开始就保持规范和模块化。秉持高内聚低耦合之类的设计原则。(尽是一些教科书上会讲的话呢)
我很喜欢在细节和末微之处花费(浪费)时间,经常为了调几个尺寸或者动画就花费一整天的时间呢。但是我不认为这是错误,说到底,做这个网站是为了自我满足。如果只是想要成果的话应该用更简单的方法,CMS或者博客框架就能搞定大部分工作了。设计摆弄画面这种创造性的活动很愉悦身心呢,也算是一种娱乐吧。 主页最上面的那个 ( ^-^)_旦~~ 按钮,背景是从《39music!》的mv里扣出来的。我在某设计网站看到有人用css蒙版捏了一个蝙蝠侠logo背景的按钮,于是灵光一现做了这个。光是调整这个按钮就不知道花了我多少时间。
审美既感性又主观,有时我认为做到了完美状态,结果在第二天就有了自认为更好的想法。而我经常会放任自己流入这种心境中,永无止境地贡献时间。对于这整个项目来说,这大概是痛点吧。
绘制未来蓝图
接下来的一年,生活要变得忙碌了。这里暂时也可以先告一段落了。如果有时间的话,还有很多东西想要尝试。比如主页和其他一些页面的信息密度过低,除了文章列表和那无关紧要的音乐播放器,还能看到点其他内容就好了呢!不过加大信息密度是好是坏,还要边做边斟酌。
还有整体布局,有些过于右派传统了,还可以盖得更有趣一点。不过这更是一件复杂又渺茫无期的事呢,因为要改的话大概要动大刀。继续输出原创内容,包括文章和“番外”页的作品,虽然暂时并不在意浏览量和内容质量,但毕竟这是一个博客的主要内容呢。
还有些麻烦的代码问题呢,比如现在的所有数据都是没有分片(页)的,即使是“追番”页的几百条数据也是一次性传上来,明显比其他页面要慢一点呢。反正暂时很长一段时间都不会有大规模的数据,索性就先没写。除此之外还有一些优先度低或者不易触发的bug也没处理......并发性能之类的更是根本没考虑。
看看我的日志里写了什么......啊啦,还有“表情符号”之类的低优先级功能,几个娱乐性创意,社交平台的机器人用的 api 之类的,暂时都先摆了罢......接下来几个月我应该要准备考试了,这边的事必须先放一边才行。
对了,还有手机端适配。直接放弃,一听就很麻烦。因为写的时候没顾虑到这种事,如果要做的话工作量很大。
把页脚时间的起点调到3月9日吧。欸?你说居然连毫秒都计算吗?只是舞台动画效果啦
2024-03-17 10:54:42