2018年10月1号,是一个值得纪念的日子,因为我的个人博客终于要上线了。

搭建博客的过程是一个学习曲线陡峭上升的一个阶段,在这个阶段中,我踩了很多坑,我决定将自己搭建博客的前前后后心理历程和实施过程做一个简要的叙述,希望给大家带来一些启示,也算是我给自己的十一国庆的礼物。

1. 前前后后的心理历程

我一直有一个好习惯:反思和总结。这个习惯给我带来了很多潜移默化的影响。

上高中的时候我的笔记一直是手写的,写到本子上面,那个时候觉得写字是一件令人愉快的事情,尤其是自己的字被别人夸很好看的时候。这样下来,一年我能写上好几本笔记,现在都不知所踪了。到了大学的时候,我开始慢慢学会把纸上的笔记转移到电脑软件上面了,于是我先是用了一些Windows自带的笔记本,每次写完之后保存到txt文档中,可是突然有一天我发现我要是用不同的电脑写笔记的时候,我就需要用u盘拷来拷去。后来学长推荐了印象笔记,才感觉发现了新大陆——不同平台之间的同步+分享功能。再后来,我的笔记越来越多,跟别人分享的次数也越来越频繁了,我就想为什么不作成博客形式的呢?这样大家就可以浏览我所有的了,于是,做一个博客的想法应运而生。

2018年年初,我终于鼓起勇气开始搭建博客,当时折腾了hexo,由于对GitHubPage还不够熟悉,总觉得要自己买一个云服务器,苦于囊中羞涩,我想过跟朋友一块合买一台,于是我跟朋友说了我的想法,但是他们反应都不大,甚至他们还跟我开玩笑,说我们刚毕业没多久,要想写一些博客,可以发表在那些知名的网站上面,比如说CSDN、博客园等,但是我觉得我必须要把这件事情办成。加上平时工作内容繁多,时间一直没有安排妥当,于是搭建博客这件事一拖再拖。

直到2018年年中的时候,公司项目做的差不多了,工作任务也不是很紧张了,才重新开始,起先我只了解到hexo静态网站生成工具,于是说干就干,下载并安装node、安装gem包管理器、安装hexo、本地部署、GitHubPage部署……想象中一切顺利!可后来,我发现我对node以及node的gem包管理器都不是特别了解,再加上找不到合适的主题,于是就果断弃坑了。

后来我又了解到Jekyll,Jekyll比node要简单一些,使用的是ruby的那一套,也是用了一周的时间去折腾,后来也弃坑了,因为ruby的问题就出现了很多的,并且关于ruby的文档又很少。

偶然的一次机会,我发现了hugo,看到了hugo的中文官方文档,安装过程几步就搞定了,不用专门学习一门新的语言,我像是发现了一个新天地。于是我开始每天晚上下班回来都整理一下。

经过一两个月的时间我终于整理出来最合适,也最适合自己的博客方案了。也就是现在大家看到的博客的样子。


2. 实现过程

我相信,搭建个人博客也属于一种软件工程的实践过程,也是需要遵循软件工程的实践操作准则的,所以,这个问题(如何开发一套完整可用的应用?)就摆在了面前?

起先,我折腾过hexo、Jekyll等静态网站生成工具,但是没有一套实践过程是坚持到底了的,直到我用到HUGO。现在想来,没有坚持到底的原因有很多:没有域名、对技术不是特别了解、需求不明确、服务器成本过高……这让我想起,这不正是和我们工作中是一样的嘛?我们可能会遇到各种各样的问题,大一些的公司可能有专门的人负责相对应的模块,所以,你只需要做螺丝钉即可,你没有必要兼顾全局。这让我想起腾讯的架构师给我们上的指导课。在我失败了很多次之后,我决定重新整理思维,理论先行,而不是拿到新东西就横冲直撞。于是就有了下面的一系列操作:

2.1 整理需求

我需要整理明白我希望自己做出来的博客到底是个什么样子的,我要给它画个像,我希望它能完成以下功能:

  • 功能性需求
    1. 展示图片+文章
    2. 评论功能
    3. 网站浏览量统计功能
    4. 标签功能
    5. 分类功能
  • 非功能性需求
    1. 流畅访问
    2. 域名访问
    3. 7*24H
    4. 维护简单

在此,我要特别强调“维护简单”这个非功能性需求,我想要的结果是,我可以专注的去写一些文章,然后发布到服务器上面,然后服务器自动的帮我完成所有的功能,实现自动化运维,这样我就可以集中精力写好文章了。

2.2 开干

说干就干,我先是看了看hugo的官方文档,然后看了一个网上的实操过程,就在本机上搭建了开发环境,现在本机上面跑了起来。接着我又去官网找了一些自己喜欢的主题,下载到本地,每一个都运行起来,看看具体的效果,紧接着是添加评论功能、添加统计功能等,最后确定出这一版,其开源地址在网站的最下面。

2.3 部署

在本机电脑上面调试好样式,又添加了几篇文章作为测试后,对整体的效果已经很满意了,接下来就是部署阶段了。

最开始,我想的方案是,部署到国内云服务商提供的服务器上去,然后申请域名,解析,备案等,过程十分繁琐。这种方案可以实现完全独立自主,但它是以牺牲写作效率、增加运维工作量作为代价的,并且备案也需要花上20天左右的时间。

后来一个偶然的机会,我了解到还有另外一种方案:部署到GitHub上面,只需注册一个域名即可,然后把域名解析到GitHub上面即可。这对我来说无疑是减少了太多工作量了。

2.4 上线

我先是去godaddy上面注册了一个域名,然后将域名解析到GitHub上面,一切OK了。

2.5 写作流程

我在GitHub上面单独创建一个仓库,用来存我的笔记文章,然后创建再创建一个跟用户名一样的仓库作为我的静态网页存储仓库,最后再创建一个专门用来存储我的主题的仓库。这样一来,我的写作流程也就固定下来了。在公司,我需要把三个仓库下载到本机,然后在文章仓库中写文章,写完之后本地运行看一下效果,满意后,生成静态文件,然后push到GitHub的静态网页存储仓库,以后写文章呢,只需要在文章仓库中新建一个文档即可。在家中,也是同样的流程。

我省下了很多精力,我不用去管服务器的运维、也不用担心备案的过程。


3. 总结

现在的博客已经基本成型,也基本完成了我想要的效果。我知道,博客还有很多需要完善的地方,我也会逐步的去完成,并写一些对大家有帮助的文档。

如果大家想要了解博客的具体搭建流程,请添加我的微信(ID: zeanzai)免费咨询,也可以直接扫描下面About中的二维码,或者稍微等待一段时间(等待我的文章出炉)……

最后希望我的博客能给大家带来惊喜,也希望能够相互交换友链。