使用commitlint检查git提交信息是否合规

建议先看下前提知识:https://www.ruanyifeng.com/blog/2016/01/commit_message_change_log.html 提交信息规范 通用类型的头字段 build 构建 ci 持续继承工具 chore 构建过程或辅助工具的变动 docs 文档(documentation) feat 新功能(feature) fix 修补bug perf 性能优化 refactor 重构(即不是新增功能,也不是修改bug的代码变动) revert style 格式(不影响代码运行的变动) test 增加测试 git commit -m "fix: xxxxxx" git commit -m "feat: xxxxxx" 安装 安装依赖 yarn add -D @commitlint/config-conventional @commitlint/cli husky 修改package.json 在package.json中加入 "husky": { "hooks": { "commit-msg": "commitlint -E HUSKY_GIT_PARAMS" } } 新增配置 文件名:commitlint.config.js module.exports = {extends: ['@commitlint/config-conventional']} 测试 如果你的提交不符合规范,提交将会失败。 ➜ git commit -am "00" warning ../package.json: No license field husky > commit-msg (node v12....

2020-09-23 09:29:01 · 1 min · Eddie Wang

租房的检查清单

在上海工作的人,除了一年一次的春运,就可能是就是一年一次的找房搬家了。 找房彷佛就是一趟西天取经,要经历九九八十一难,也要个各种妖魔鬼怪斗智斗勇。这其中难处,暂且不表。重点介绍你应当如何去按照一定的方案来检查各种设施的功能。 要知道,世事多变,你现下找的房子如果很不错,即使后期突然需要转租,也是比较容易转租的。否则房子转租不出去,自己也白白赔了押金。 重点检查 洗衣机 空调 冰箱 抽油烟机 马桶 上面这些设备,不要斤斤打眼看看外表正不正常,更要尽可能去试试。比如说马桶,即使能无法坐在上面上个厕所,你也要用手按一下,看看冲水是否正常。 交钱之前你是二房东大爷,交完钱签好合同,二房东就是你大爷了。马桶要是不好用,浪费水不说,还影响心情。到时候你找你大爷来修,你大爷就不一定有时间了。你大爷一般包了几百套房子,怎么会管你的小问题呢。 总之呢,你要有自己的一个检查清单项目,要检查哪些,如何检查,务必做到切实可行。 有的时候,房子有些问题,房东和中介故意顾左右而言他,你切不可被他们玩的团团转。一定要按照既定的方案实施检查。 另外就是签合同了,违约金这块要注意的。有的中介和二房东狼狈为奸,除了要不退押金,还要有额外的赔钱项。这点务必要注意。正常来处,如果转租不出去,你有确定要退房,一般只有不退押金,没有其他的赔钱项。这点要在租房合同上写清楚。 凡是没有黑纸白纸写清楚的,你都可以认为是中介和二房东在忽悠。

2020-09-16 20:57:40 · 1 min · Eddie Wang

如何避免被收银员坑

大部分人结账付钱的时候,都不怎么关注。很多次被收银员褥羊毛了也毫不察觉。 场景1: 你去买水果,看到苹果比较新鲜,价格8元/每斤,但是收银员称重计费的时候,是按照12元/每斤计算的。但是当时你在打开支付宝准备付钱,没有注意称上的单价。付费过后,收银员没给你小票。你也没注意,事情就这么过去了。 如果你对收银员按的单价表示怀疑,问了句:这苹果怎么和标价上不一致? 收银员尴尬的笑了笑,说到:不好意思,我按错了。比较老练的可能会说:不好意思,我还以为你拿的是旁边的那种水果呢? 场景2: 你和朋友一起去吃烤鱼,点了一条清江鱼,服务员称重过后,在菜单上用铅笔写了3.5斤。酒足饭饱之后,你去结账。收银员开出小票,上面写的清江鱼 4.2斤,你也没注意。甚至有可能那个铅笔写的斤数已经被酒水的污渍涂抹的不清楚了。如果有表示怀疑,仔细看了看小票,说鱼的重量不对。收银员又尴尬的笑了笑,说到:不好意思,这个可能记得别的桌的鱼的重量的。 场景3: 你买了一包垃圾袋7元,一包衣服撑18,一个垃圾桶6,五金店的老板也没用计算机,抬头望着天空的那朵白云。彷佛再做云计算,然后说:一共38块。 shit! 很多人真的就直接掏钱了。 你看看,收银员说的不好意思多值钱,简直是一字千金啊!但是更多时候,我们都是稀里糊涂的蒙在鼓里。 要想不被辱羊毛,务必要谨记。 商品的标价要谨记于心 不要相信收银员的信口开河的算钱,要自己算 买完东西,一定要问收银员要小票 收银员称重的时候,要注意观察称上显示的价格和摆货区的价格是否一致

2020-09-16 19:16:58 · 1 min · Eddie Wang

IO性能 Node vs PHP vs Java vs Go

System Calls 应用程序工作在用户模式 应用程序不能直接访问硬件资源,应用程序需要调用操作系统提供的接口间接访问。这个叫做系统调用。一般的系统调用都是阻塞的。阻塞的意思就是你在网上买了个苹果,在你收到这个快递之前,你啥也不干,就躺在床上等着。 非阻塞 非阻塞的程序,在系统调用时,会立即返回一个标shi

2020-09-14 16:43:06 · 1 min · Eddie Wang

使用iPad开发折腾记

为什么要用iPad开发? 第一,我不想再买台电脑或者笔记本放在家里。因为我也不用电脑来打游戏。而且无论台式机还是笔记本都比较占地方。搬家也费劲。 第二,我只有一台MacBook Pro,以前下班也会背着,因为总有些事情需要做。但是自从有一天觉得肩膀不舒服了,我就决定不再背电脑。廉颇老矣,腰酸背痛。 虽然不再背电脑,但是偶有雅兴,心血来潮,我还需要写点博客或者代码的。 所以我买了台iPad来开发或者写博客。 前期准备工作 硬件准备 一台iPad 一个蓝牙键盘。最好买那种适合笔记本的蓝牙键盘,千万不要买可折叠的蓝牙键盘,因为用着不舒服 软件准备 常规的功能,例如写文字,写博客,一个浏览器足以胜任。唯一的难点在于如何编程。 目前来说,有两个方案: 方案1: 使用在线编辑器。例如码云,github, codepen等网站,都是提供在线编辑器的。优点是方便,免费。缺点也很明显,无法调试或者运行代码。 方案2: 购买云主机,iPad上安装Termius, ssh远程连接到服务端,在真正的操作系统中做开发。优点是比较自由,扩展性强。缺点是需要花钱,而且在没有IDE环境做开发是有不小的难度的。 方案1由于比较简单,就不赘述了。 着重讲讲方案2: 购买云主机 一般来说,即使是最低配置的主机,一年的费用也至少要几百块。但是也有例外情况。我的目标是找那些年费在一百块以内的云主机。 针对大学生的优惠。一般大学生可以以几十块的价钱买到最低配的云主机。 针对新用户的优惠。新用户的优惠力度还是很大的。一般用过一年之后,我就会转站其他云服务提供商。所以国内的好多朵公有云,基本上我都上过。唯一没上过的就是筋斗云。 特殊优惠日。一般来说,一年之内,至少存在两个优惠日,双十一和六一八。在这两个时间点,一般可以买到比较优惠的云主机。 开发环境搭建 使用Terminue连接到远程服务器上。注意最好在公有云上使用公钥登录,并禁止掉密码登录。最好再安装个fail2ban。因为每个云主机基本上每天都有很多恶意的登录尝试。 需要安装oh-my-zsh. 最好用的sh, 不解释。 作为开发环境,一个屏幕肯定是不够的,所以你需要tmux. 编辑器呢。锻炼自己的VIM使用能力吧。VIM是个外边比较冰冷的编辑器,上手难度相比于那些花花绿绿的编辑器而言,显得那么格格不入。但是就像有首歌唱的的,有些人不知道那些好,但就是谁也替代不了。 总之呢,你必须要强迫自己能够熟练的运用以下的几个软件: VIM tumx 后记

2020-09-08 20:37:52 · 1 min · Eddie Wang

岁月的皮肤

早上六点多起床,搭乘半个小时的地铁,来到医院做体验。 在抽血排队叫号的时候,我看到一位老奶奶被她女儿搀扶着坐在抽血的窗口前。 老奶奶把右边的胳膊伸到抽血的垫子上,那是让人看一眼就难以忘记的皮肤。她的皮肤非常松弛,布满了褶皱,褶皱上有各种棕色和深色的斑点。 我回想起了高中时学的生物学,皮肤是人类最大的一个器官,并且是保护人体的第一道防线。 我不禁看了看自己胳膊,思绪万千。或许以后我的皮肤也是这样吧。这就是岁月的皮肤! 时间啊!你走的慢点吧! 人生很短,做些值得回忆的事情吧。

2020-08-30 21:47:35 · 1 min · Eddie Wang

从日漫到美漫

我挺喜欢看动漫的,尤其是日漫(似乎也没有别的选择🐶)。 小时候星空卫视放七龙珠,大学追火影和海贼王。日漫中梦想和激战总是少不了,这也是少年所必不可少的。但是日漫有个很大的特点,就是烂尾。 没办法,漫画一旦达到了一定的连载时期,很多时候往往不受原作者控制了。这其中可能涉及到不少人的利益纠葛。 与动辄几百集的日漫相比,美漫似乎更加偏向于短小精悍。 近年来我也看过一些不错的美漫。例如瑞克和莫提,脆莓公园。这类漫画有个特点,就是更加现实,当然其中也不乏有温情出现。看这类漫画,让我想到李宗吾先生所说的厚黑学。感觉美国人是无师自通,深谙厚黑之哲学。 也许动漫没有变,变的是我们自己:从梦想和激战转变到现实和厚黑。

2020-08-30 21:22:46 · 1 min · Eddie Wang

统一入口Makefile

Makefile ---src |___Makefile |___main.c 如何编写顶层的Makefiel, 使其进入到src中,执行src中的Makefile? run: $(MAKE) -C src target a=1 b=2

2020-08-22 11:41:32 · 1 min · Eddie Wang

tmux深度教学

tmux使用场景 远程ssh连接到服务器,最难受的是随时有可能ssh掉线,然后一切都需要花额外的时间重新恢复,也有可能一些工作只能重新开始。 在接续介绍tmux之前,先说说mosh。 【mosh架构图】 我曾使用过mosh, 据说mosh永远不会掉线。实际上有可能的确如此,但是mosh实际上安装比较麻烦。mosh需要在服务端安装server, 然后要在你本地的电脑上安装client, 然后通过这个client去连接mosh服务端的守护进程。mosh需要安装在客户端服务端都安装软件,然后可能还要设置一下网络策略,才能真正使用。 mosh需要改变很多,这在生产环境是不可能的。另外即使是自己的开发环境,这样搞起来也是比较麻烦的。 下图是tmux的架构图。实际上我们只需要在服务端安装tmux, 剩下的ssh的连接都可以用标准的功能。 【tmux架构图】 tmux概念:sesssion, window, panes 概念不清楚,往往是觉得tmux难用的关键点。 session之间是相互隔离的,tmux可以启动多个session 一个session可以有多个window 一个window可以有多个panes 在tmux中按ctrl-b w, 可以在sesion,window和panel之间跳转。 注意:默认情况下,一个sesion默认会打开一个window, 一个window会默认打开一个pane。 session操作 创建新的sesssion: tmux new -s some_name 脱离session: ctrl-b +d 注意即使脱离session, session中的内容还是在继续工作的 进入某个session: tmux attach -t some_name 查看sesion列表: tmux ls kill某个session: tmux kill-session -t some_name kill所有session: tmux kill-server 重命名session: ctrl-b $ 选择session: ctrl-b s window操作 新建: ctrl-b c 查看列表: ctrl-b w 关闭当前window: ctrl-b & 重命名当前window: ctrl-b , 切换到上一个window: ctrl-b p 切换到下一个window: ctrl-b n 按序号切换到制定的window: ctrl-b 数字 数字可以用0-9 panes操作 pane相当于分屏,所有pane都是在一个窗口里都显示出来的。这点和window不同,一个window显示出来,则意味着其他window是隐藏的。...

2020-08-22 08:00:03 · 1 min · Eddie Wang

打造高可扩展性的微服务

关键技术 Docker: 容器 kuberneter:架构与部署 HELM: 打包和部署 Prometheus: 监控 Open TRACING + ZIPKIN : 分布式追踪 关键性能指标 I/O 性能: 启动耗时: 当服务出现故障,需要重启时,启动的速度越快,对客户的影响越小。 内存使用:

2020-08-15 21:14:13 · 1 min · Eddie Wang