搭建个人博客的经历和思考

故事的开端
有一个属于自己的网站是自己一直以来的愿望。可以追溯到大三的时候,当时为了给实习简历增加点亮点决定自己搭建一个个人的博客。正好赶上系里正在进行软件工程实践,需要与其他同学组队一起做一个项目,参与最后的答辩。搭建博客这件事变成了一举两得的事情,赢!
于是跟当时的室友组成了一个Team(是否有团队名我已经记不清楚了)。我来负责前端,开发博客页面和后台管理系统也没,使用的是React
+Redux
+Antd
做的单页面应用。其他人用java开发后端。最后还真的给我们整出了一个像模像样的东西,赢!
当我拿着我们大赢特赢的项目拿去面试的时候,没想到在面试官眼里我做的东西连玩具都算不上,顶多算个demo😭。特别受挫,立下的要持续维护这个项目的豪言壮志在面试失败的第二天就放弃了。现在再看看当时做的东西,其实也没那么糟糕,如果能沉下心来持续维护说不定也是一个不错的个人项目。
其实看起来还是蛮不错的hhh👇
人就是很奇怪,如果有一件事情让他特别受挫,那么接下来很长一段时间里他都不愿意再回忆或者再碰这个东西。
风云再起
时间来到了去年(2024)三月份,此时的我已经是个刚毕业工作了半年的合格菜鸟了。想拥有一个个人博客的心思又开始蠢蠢欲动,我已经不是当年那个刚入门的小白了!我已经掌握了js for循环的各种写法,我要再次挑战你!
说干就干,开始设计我的博客系统的前后端。UI界面、交互、服务端数据库、富文本编辑器、服务端渲染、静态站点生成,所有屌炸天的技术和设计都给我招呼上去。从三月份开始每个周日都在家里写代码画设计图(自己给自己当牛马还是挺快乐的)。一般的故事写到这里会有个转折,你以为我也会有吗?确实有。
这份热情从三月份持续到了十一月份,我做完了大部分的工作
、博客界面、博客后台、后端开发。然而距离"完成"似乎还是遥遥无期,激情就这样被磨灭掉了。反正,第二次尝试开发博客系统又失败了。不过这次心态意外的好,不愧是合格菜鸟,开始学会总结原因了。失败不可怕,可怕的是失败了还没从中学到点什么,自己仔细反思了一下原因:-
太追求完美会掉入完美主义圈套
完美主义是程序员的PUA大师!它总在你耳边低语:'这个按钮再调0.5px,用户就会爱上你',结果你调完发现用户根本没长眼睛
开发的时候处处都想着保持完美,完美的代码,完美的设计,完美的交互...怎么做都不满意,一直在同一个地方改改改改改。且不论世界上有没有完美的东西,我自己也应该想一想,以我的能力,真的能做出完美的东西吗?与其追求完美,不如先考虑乱写一通把功能先做完(反正把github的仓库隐藏起来别人也看不到代码😇)。
-
志向高远是好事,别让他把你害喽呀
决定做一件事之前给自己定一个很高的目标是一件好事情,然而真的很少有人能够耐得住性子,承受两三年看不到结果的迷茫和焦虑去完成这个目标(事实证明本人连一年都没有承受住)。因此,除了设置一个总体上的远大目标外,把远大目标拆解成一个个小目标是一件很有必要的事情,达成小目标的正反馈能让一个人更有动力继续推动接下来的事情,而不是抬头望着远在天边的理想,毫无进发的动力。
-
细节决定成败...吗?
细节决定成败的前提是,你得先有个像模像样的东西来让你往上加细节。字体要
16px
还是14px
?这个属性的命名叫chicken
还是kunkun
还是xiaoji
? 要不要优化一下这个已经做好的功能?(每个软工的学生应该都知道提前优化是大忌,但是总有人忍不住要犯蠢,比如本人) 这些纠结在一个项目做出来之前真的重要吗?你总不能在艺术家刚开始画画时就要求他把画里的某一粒小石子加上逼真的纹理(他一定会干死你的)。 -
定好开发计划之后有人突然要加需求,记得嘴他,包括你自己(希望我们的产品不会看到这篇文章🙏)
作为INTP,P人的奇思妙想多的可怕,好处是P人从来不缺想象力,坏处是TMD这小子总是不断改动自己定好的需求。想加一个好看的主题、想在页面上放上自己喜欢的动漫作品的元素、想整一个很酷炫的富文本编辑器,总之,不严格遵守自己定下来的计划,你将累到发昏。
-
技术选型真的很重要
这个锅Next得背一半,所谓的全栈框架确实能够简单支撑一下服务端业务,前后端在一套JS代码里写还挺便利的。但你要真的妄想用他来开发能够支撑一个复杂管理后台的后端,那开发体验简直比吃屎还难受。别听社区里怎么吹,自己先体验一下自己评估一下是否适合自己接下来要做的项目才是正解。当一个人手里只有锤子的时候,他看什么都像钉子
风云再再再起
经历两次失败和认真总结之后,决定切换一下战略。
- 先完成再完美,代码先哐哐写,反正没人一起开发。先整一版再慢慢迭代
- 克制一下自己的奇思妙想,按部就班的先把各个阶段的目标完成
- 把大目标分成几个小目标,慢慢做,放过自己
反正, 最后这个博客正常上线了。目前还很简陋,没有富文本编辑器,文档维护靠的是Github仓库;没有管理系统,只接了一个本地文件模块来读取目录下的MD文件;没有数据库也没有评论系统;没有图片等资源管理。工作之余在ai的帮助下简简单单开发几天完成了,最难的反而是部署和上线。
当我第一次通过自己买的域名打开自己开发的网站获得的愉悦感真是之前任何事情都比不了的
关于这个博客
整体技术栈如下:
- 开发框架: Nextjs+Tailwind
- 部署运维: 1Panel
- https证书: 1Panel提供的自动签发功能
- 域名解析和服务器: 腾讯云
- 图床: PICUI
对于这个项目后期还是会持续的往上加功能的,不过会更佛系一点,毕竟最主要的功能可以写东西
已经完成了。其他的只是锦上添花罢了,学会放过自己🙏。
Todo:
- 接入
Twikoo
评论系统 - 页面切换过渡动画
- 文章标签页面
- 接入webhook自动构建发布
- 文章分页
最后
肯定有人看到这要问啦,市面上的开源博客系统那么多,为什么还要自己费力去搭一个。emmmm我只能说,你说的有道理。But!作为一个程序员,我想每个人都有自己做点项目的想法吧🙃,我大三实习的时候我的指导人总跟我说:要当一个厉害的程序员,首先要多多折腾自己。写代码本身有时候其实是一件很痛苦的事情,只有用他去做一些有乐子的事情的时候,写代码这件事才会让我感到快乐~