关于分支管理的一点感想

之前写 git 文档的时候有说到过要开发一个新功能,从开发分支切出进行开发,开发完合并回开发分支。但是在工作中,基本是自己一个人开发的项目,为了省事,经常会直接在开发分支上修复 bug,最近就发现了这样是有问题的。

问题大概过程是我切了一个分支去配合后端 api 改造,修改完之后,合到了测试分支,供测试。一段时间之后,后端正式环境还没有更新 api,我也就一直没有发布到正式环境,这时候测试版发现了一些 bug,于是顺手在测试分支上改了,又过了一些天,又改了写 bug,这时候需要把这些 bug 修复更新到正式环境,就出现问题了,更到正式环境如何保证不更 api 改造相关内容,只更 bug 修复部分呢?若是一个两个 commit 还好,cherry-pick,但是我是修复了一批 bug,修复一个 bug 就一个 commit,这么更万一更错了呢。所以这提醒我以后要合并改动到测试分支之前,先要确定是不是这部分可以上了,免得日后出现这种问题,或者开一个预发布分支,把确定可以发布的内容发到预发布分支。

阅读全文

使用 Docker 配置前端环境

一、大体思路

1、设置 shell 别名运行 docker 命令

  • alias — 设置 shell 别名
  • node — 在终端输入的名称

阅读全文

知识焦虑

最近总感觉有点焦虑,想业余做点什么事情,但是真正回到家,抱着笔记本,又发呆半天不知道要干嘛。好像没什么特别感兴趣的事情想去做,这种状态使我感觉更加的不自在。现在好像有点理解海子的《面朝大海,春暖花开》了,很想对生活充满热情,去做很多的事情,但是现实是喂马、劈柴、周游世界一样都没去做。好久没写文了,发个文绉绉的牢骚,附上海子的诗

阅读全文

WebRTC

A collection of Hello World applications from helloworld.org.

阅读全文

常用正则表达式

一、html 相关

1、去掉所有 html 标签,并保留内容: /<[^>]+>/g

阅读全文

原地删除数组中的重复值

来源

26. Remove Duplicates from Sorted Array

阅读全文

Prisma 入门指南

最近 prisma 挺火的,他号称是下一代 nodeJs ORM, github 的 star 一直在上升,issue 也有一千多 k,连本地数据库上手玩了一下,真的很不错,附上简单的入门级操作。

一、初始化

1、下载相关包

npm install prisma typescript ts-node @types/node --save-dev

阅读全文

Ffmpeg 抽取视频音轨

看 youtube 上有些视频的音乐很好听,就想抽出来当自己的歌单,懒得去用市面上的软件,觉得麻烦,想到了 ffmpeg。 mac 可以用 homebrew 下载,过程比较烦,每次装都要更新,更新很久才开始下载,于是切了清华源,快一点。

安装好 ffmpeg 之后要抽离音轨就很简单了

阅读全文

晨跑

国庆的第一天跟李先森跑去体验公司的酒店了,看电影打游戏,还发现了一本不错的书,村上村树的《当我谈跑步时,我谈些什么》。这本书主要讲的是村上村树在跑步过程中的一些感想,没有花很大的文笔去写跑步带来诸如健康之类的优点,而是侧重写一些回忆,一些故事,感觉挺有趣的,当晚看完一章我就立刻下单了这本书。

阅读全文

校验字符串是否有意义

项目中有一个表单,初始化根据服务端返回的数据渲染,服务端返回的是一个对象,有些字段的值为 ‘NULL’ 这种形式的,渲染出来没什么意义,一般都会转换为空。这种形式的字符串布尔值是 false,而且是对象的值,不好一键转换,这里就需要写一个函数去做校验了。这里我写了个简单的转换函数如下:

export function checkVal(val) {
const isSense = checkStr => {
if (typeof checkStr !== 'string') {
return checkStr;
}
const noSense = ['null', 'undefinded'];
const str = checkStr.toLowerCase();
return noSense.includes(str) ? '' : checkStr;
};
const isObject = value => {
const type = typeof value;
return value != null && (type === 'object' || type === 'function');
};
if (isObject(val)) {
const keys = Object.keys(val);
let newVal = Object.create(null);
keys.forEach(el => {
newVal[el] = isSense(val[el]);
});
return newVal;
}
isSense(val);
}

阅读全文