我这人做项目,最大的毛病就是记性差。前一天自己改了什么东西,第二天就忘得一干二净。项目一大,出了问题找原因,那简直是抓瞎。所以这回弄这个“Eliminator小枫”官网,我一早就决定,必须得把更新日志这块儿给狠狠地落实了。
撸起袖子干:从零开始搭建日志系统
最早,我就是想着随便在网站底部塞个文本文件完事,每次改完手动加几行字。结果跑了不到两周,我就厌烦了。手动操作太容易出错,而且排版丑得没法看。
我仔细想了想,更新日志这东西,不能光给自己看,既然是官网,也得让人家知道我没跑路,项目还在推进。我决定:
- 必须自动化,或者至少半自动化,减轻我的劳动量。
- 必须结构化,不能是乱七八糟的流水账。
- 必须用最简单的语言,让普通人也看懂我修了什么。
我先是挑了一个最轻量的日志生成方案。我没用那些高大上的CI/CD工具,那玩意儿杀鸡用牛刀。我直接定义了一个Markdown的模板,每次我完成一个大版本更新或者修复了一个要命的Bug,我就会新建一个文件,名字就叫“版本号-日期.md”。
文件里头我也不写什么“优化了资源加载策略”这种鬼话,我就写:
- 修了:首页那个按钮颜色不对,点下去没反应的毛病,现在能跳了。
- 加了:多了一个“关于我”的页面,塞了几张我以前乱七八八搞的项目的截图。
- 改了:服务器配置动了动,感觉访问快了一点点,但不知道是不是心理作用。
内容写完后,我写了个贼短的Python小脚本。这脚本的功能很简单粗暴,它就是去抓所有符合命名规则的Markdown文件,然后按照日期给我排个序,3把它们一股脑塞进官网的“更新日志”页面模板里,自动生成HTML。这样一来,我只需要写Markdown,其他排版和索引的事情,脚本全给我办了。
为什么我非得把日志系统搞得这么细?
我这人之所以对“记录”这件事这么执着,是吃过大亏的。这事儿我到现在想起来还心梗。
那年,我还在老东家干活,搞一个挺重要的内部工具,我埋头写了快半年。项目临上线前三天,因为我手贱,在清理本地缓存时,直接把整个项目的变更记录和Git日志文件都给清空了。
当时项目出了一点小毛病,老板让回滚到上周的版本。我一翻记录,傻眼了,空空如也,完全不知道哪个文件动过,哪个文件没动。我当时吓得一身冷汗,只能连夜手动比对了上千个文件,才勉强弄出了一个能跑的版本。那三天我基本是靠速效救心丸挺过来的,虽然项目是救回来了,但老板对我的信任度也跌到了谷底。
那次教训太惨痛了。我深刻意识到,技术再牛,疏忽了记录和管理,那分分钟都能要了你的命。现在我自己搞这个官网项目,我直接把更新日志提升到了跟核心代码一样重要的地位。这个日志系统,它不是花架子,它是我的救命稻草。
现在这个脚本系统运行得挺稳当,每次更新,我写完Markdown,运行脚本,提交,三步到位。简单粗暴,永不翻车。实践证明,越简单粗暴的方案,越耐用。