关于博客

2021-05-10~2021-06-01

最初有搭建自己博客想法的时候还是在大一的时候了,那时候刚刚接触编程,对计算机相关的东西都充满了好奇,很多接触的新鲜东西都想自己去尝试,自然对自建博客也不例外。座右铭是:只要给我一台电脑,我就能敲动地球。但那时候对我来说,自建博客除了想自己动手尝试下之外更多的就是炫耀而已,没有其他更有意义的想法,再加上当时的自己能力欠缺,唯一在学的一门语言就是C语言,以至于这件事就这样不了了之了。

决心

作为一名入门程序员,我想解决一个问题最好的办法或许是百度一下,没有之一,就算是现在有点自傲的我,即使对于同一个问题,也喜欢在用到的时候搜一下,个中缘由我想大家应该都清楚。

但是如果当你搜一个很常见的问题时,我想排在最前面的基本都是CSDN或者博客园吧。其实博客园还好,但是对于CSDN,个人是非常不喜欢的,比如:1.复制,CSDN会在你复制的内容后面加一段毫无意义的说明,且会在代码区右上角增加一个“登录后复制”遮挡按钮;2.想尽办法让你跳转到App,要么就是当你在手机上打开一个CSDN的链接时,刚开始会直接给你跳转到其他页面,你需要再次操作才能跳转回来,要么就是当你阅读到一半时给你两个选项,总之就是想让你APP;3.当你寻找一个问题很久且终于看到一案例似乎符合你当前的状况时,但是当把这篇文章阅读完时,你会发现“最核心”的部分要花钱才能下载。。。虽然生在中国,但是我也知道网站运营需要成本,所以对很多广告或是收费都能理解,并且我也会购买一些付费服务。但是很多过分且反人类的做法我个人是及不赞同的,其中CSDN就是其中之一。

作为一个程序员来说,只要遇到问题就应该首先想着去解决或者优化,而不是逃避,这是一个程序员的基本必备品质。拿上面提到的这个问题来说,我们无法直接去解决这个问题,但是很多时候可以规避,比如使用搜索引擎的时候刻意屏蔽掉CSDN相关结果,自己的博客不上CSDN等。其中,如果不上CSDN,那么第三方博客中博客园应该是一个好的选择,实际上我也是这么做的,但是现在有时间了,除了博客园之外,还是想自己搞一个,因为最近在学习前端技术,面对当下如此火热的前端,我早已按耐不住这颗激动又期待的心了。

博客搭建历程

想要搭建一个博客网站,其实还是挺难的,从开发到后期的运维需要考虑非常多的问题,比如单单一个技术栈选型就要考虑后期运维成本以及SEO等等。而实际上也确实如此,从第一版到现在已经经历里两个大版本迭代,将所使用的框架等全部进行更换,但以后(很长一段时间里)将会继续沿用当前的选型并不断优化。

版本一

在开始搭建博客的时候,实际上我已经参加工作一年多了,对相关知识大部分都有一定的了解,这也是最终决定搭建个人博客的原因。但是什么事情都最好是先去参考已有或类似的事情,然后再决定如何做,但那时候如果在网上搜索“博客搭建”关键字的话,较老一点的就是基于PHP的,较新一点的就有基于hexo的,基本都不合我的心意。

以前有个初学者请我帮他解决一个jsp相关的问题,当时按照他的思路就是怎么想都没问题,但是程序怎么运行都是错的,错的原因是js代码中的一个变量直接接收了一个java变量的值。发明jsp的初衷是想让java写html更容易,但是也就是因为这种“容易”将太多东西混在了一起,以至于很容易让人犯浑,哪怕是现在,周围只要是使用了jsp技术的系统,代码几乎都是乱和差的代名词。然而对于PHP,我认为它和java中的jsp技术非常的相似,所以即使不用自己写php代码,但也不可能使用php。

此外,像基于PHP之类的系统来说其实也有好处,那就是动态的,但是对于一个个人博客来说,能做到动态肯定最好,但静态也能接受,毕竟个人博客更新不频繁,并且静态也意味着访问快且维护成本极低。虽然那时候在当前的前端技术热潮下,我始终认为像什么React、Vue以及Angular之类的才是前端的未来,但是需要考虑SEO并且那时对这些框架的预渲染技术了解不多,再三权衡后还是选择了hexo,而后研究了下hexo并找了一个hexo主题花了几天时间修修改改,这样第一个版本的博客就完成了。自此也算是完成了想尝试的目的,所以之后也几乎没管过它。

版本二

经过第一版的折腾,也发现了很多基于hexo框架搭建的不足,比如主题修改麻烦以及浏览器跳转效果不能像单页应用那样顺滑等问题,这些问题也是第一版完成后几乎没再管的原因。

不过后面有一天,当我在查询Vue官方文档的服务端渲染章节时,发现官方有提到Nuxt.js这个社区项目,所以当即就点进去看了下,之后又在Nuxt.js官网看到强大的Tailwind CSS,经过大致了解后发现强大的Tailwind CSS在目前非常适合用于替代Bootstrap进行页面布局,因为在平时开发中,即使我们通常会使用Ant Design之类的组件库,但是通常还是会使用更专业的css框架来做布局,而Bootstrap就是一个不错的选择。当时看了下Tailwind CSS官方,发现其官方是基于Next.js的,再加上它和Nuxt.js仅仅相差一个字母,随即对比了这两个框架。通过对比发现他们所提供的功能几乎相同最大的区别在于一个是基于Vue的,一个是基于React的,并且都对预渲染支持良好,所以果断选择Next.js而放切Nuxt.js,放弃Nuxt.js的原因是当时它还不支持Vue3,而Vue2则在很多方面很难用,并且平时很少用React,而这次刚刚有机会尝试一下。

就这样经过一番预研(波折),最终选定Next.js为基础框架,选定Tailwind CSS为CSS框架。这样选的好处在于:1、拥抱新技术;2、每个页面加载完成后,不包含图片仅仅700kb左右;3、完美预渲染,从而可以静态部署降低维护成本的同时还能SEO;4、定制化相对简单。。。

后续

要想达到一个标准博客所需要的标准还有很多事情需要去做,比如评论的实现等,而评论则需要建立在登陆的基础之上。然博客不是目的,在这条不断探索未知的道路上,我相信人或事都会慢慢地越来越好。


发现错误或想为文章做出贡献? 在 GitHub 上编辑此页面!
© 2020-2025 All Right Reserved 滇ICP备17005647号-2