用计算md5的方法砍掉伪需求


title: 用计算md5的方法砍掉伪需求

我的个人网站v2fy.com 由WordPress搭建,为了更便捷的管理网站内容,我将每篇文章存储到独立的markdown文件中,并写了个脚本,将存储在每个markdown文件的独立文件,通过api,依次同步到个人网站,但随着文章数量的增多,同步的时间也越来越长。

为了解决这个问题,我为每个文件内容计算一个md5值,md5值与文件绑定,存到本地文件里,当内容发生变化时,md5值也发生变化,每次同步,重新计算md5值, 与旧md5值进行对比, 进而确定文章是否需要同步,一个小改进,让同步时间大大缩短。

md5

以下是Node.JS计算文件md5的代码

const crypto = require('crypto');
const fs = require('fs');

async function cal_md_file_md5(file_path) {

    const md5 = await new Promise((resolve, reject)=>{
        const stream = fs.createReadStream(file_path);
        const hash = crypto.createHash('md5');

        stream.on('data', chunk => {
            hash.update(chunk, 'utf8');
        });

        stream.on('end', () => {
            const md5 = hash.digest('hex');
            console.log(file_path, md5);
            resolve(md5);
        });
    })
    return md5;
}

完整代码开源地址: https://github.com/zhaoolee/jikemiji

最近,工作中接收到很多紧急需求,但大多是伪需求,根本不需要代码去实现,经过一波讨论,需求少了很多,识别伪需求的方法和计算文件md5值的思想类似,真正需要的做的事, 往往是引发需求的源产生了变化, 如果源没有变,提出的需求,大概率是伪需求,可以尽可能砍掉。

本文永久更新地址(欢迎来读留言,写评论):

https://www.v2fy.com/p/2021-08-06-md5-1628249145000