hexo 博客部署梳理

两年了终于想要再维护下博客,折腾了两个小时,记录一下,避免以后增加维护成本。

1. 执行 hexo server 展示 help 提示页

首先这个坑,在于hexo d 并没有将对于能够重新部署环境的文件全部上传到github对应仓库。导致clone下来的仓库是无法部署的,简直非常诡异,搞不清楚为什么要这么设计。

执行hexo server 会抛出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$ hexo server
Usage: hexo <command>

Commands:
help Get help on a command.
init Create a new Hexo folder.
version Display version information.

Global Options:
--config Specify config file instead of using _config.yml
--cwd Specify the CWD
--debug Display all verbose messages in the terminal
--draft Display draft posts
--safe Disable all plugins and scripts
--silent Hide output on console

参考官网 issue https://github.com/hexojs/hexo/issues/1442, 照着跑了下没啥用,但是至少能确定少一些配置文件。

2. 找到本地文件

通过find / -n 'xx' ,终于找到了本地文件的地址(泪目,先是将_config.yaml,复制了过去,没啥用。直接暴力将其他文件都上传到github另一个仓库(现在想同一个仓库就行了orz)。项目跑起来了终于。

3. 主题

终于将项目在新电脑本地跑了起来。但是还是无法展示具体页面,猜测下来是主题问题。

以及主题是无法加入仓库的,这个倒是可以理解。

1
2
3
rm -rf node_modules && npm install --force
git clone https://github.com/ahonn/hexo-theme-even themes/even
cp themes/even/_config.yml.example themes/even/_config.yml

终于解决。

问题复盘

一共出现了三个问题:

1.测试代码带到上线了

2.showcase的时候都没把主流程跑通。最后靠zhachen救场。

​ 没有在本地把环境搭起来。导致debug的效率非常低。

  • 单元测试覆盖非常重要,写单元测试的确很花费时间,但是写好之后,单元测试可以每次都跑,节约了人肉测试的时间

3.忘了


太相信QA了…


进行反思

也不要完全相信QA。

给自己一次失败的机会,但是下次要做好。这次只能是幸运、真的要算就是三次事故。

  • 一定要把思维训练的更加严谨,我认为这对我个人的长远发展是有好处的,开发之前,一定要想的比较清楚了,再开始,这样可以进一步减少后续的错误

  • 单元测试覆盖非常重要,写单元测试的确很花费时间,但是写好之后,单元测试可以每次都跑,节约了人肉测试的时间

  • review这个流程非常重要,但是本次由于单个PR太大,review并没有发挥作用(review的也不够细致)

  • 即使有review,也不能依赖review。还是要对自己的产出质量有要求,这是我对自己新的五年的一个要求

  • 改动之后,一定要自己先完整的测试几遍,对于不熟悉的部分,一定要找老员工问清楚

  • 对于大的改动,应当是先写好单元测试,然后再开始改动,这样就更容易知道哪里改错了


这次一定要先把主流程跑通。同时完善单测。

好消息是。我用很小的代价,得到了很大的教训。

此后的每一个改动, 我都有加上单元测试,以及人肉去回归一遍。

bcc/MySQL相关踩坑过程

背景

毕设做的是用 ebpf 对 MySQL tracing/monitor 的一个项目。本着站在巨人的肩膀上前行的想法,先看看bcc 中MySQL相关的工具。如果能在bcc工具基础上修改,那就再好不过了。