Posts List

书写良好的 commit message

今天来说说如何书写好的 commit message。 Commit message 大家应该每天都在写,每次使用 Git 提交代码时,我们都会在执行 git commit 命令时附带上一句话来简要描述此次提交的改动。 Commit message 看似简单,作用却很重要。在阅读代码时,可以通过 commit message 了解到作者编写某行代码时的背景;调查 bug 时可以通过搜索 commit message 快速定位相关的提交记录。 那么什么样的 commit message 才算好的 commit message 呢? 开源社区已经为我们总结出了一套名为 Conventional Commits 的书写规范。很多流行的开源项目都使用了这套规范,如 Karma,Angular 等。其规定的格式如下: <type>[optional scope]: <description> [optional body] [optional footer] 下面我们分别来介绍一下其中的各个组成部分: type :用于表明我们这次提交的改动类型,是新增了功能?还是修改了测试代码?又或者是更新了文档?开源社区目前总结出了以下 11 种类型: build:主要目的是修改项目构建系统(例如 glup,webpack,rollup 的配置等)的提交 ci:主要目的是修改项目继续集成流程(例如 Travis,Jenkins,GitLab CI,Circle等)的提交 docs:文档更新 feat:新增功能 fix:bug 修复 perf:性能优化 refactor:重构代码(既没有新增功能,也没有修复 bug) style:不影响程序逻辑的代码修改(修改空白字符,补全缺失的分号等) test:新增测试用例或是更新现有测试 revert:回滚某个更早之前的提交 chore:不属于以上类型的其他类型 optional scope:一个可选的修改范围。用于标识此次提交主要涉及到代码中哪个模块。根据项目实际情况填写即可,最好在项目中规定好模块列表,保持一致性。

是时候升级一下你的 nvm-windows 了

是时候升级一下你的 nvm-windows 了

一直以来都使用 nvm-windows 来管理 Node 版本。从没出过问题。今天团队小伙伴来反馈我们的一个内部命令行工具在 Node 6.10.0 上无法安装。于是决定安装一个 6.10.0 调查一下。 于是执行: nvm install v6.10.0 结果输出: $ nvm install v6.10.0 Node.js vv6.10.0 is not yet released or available. 似乎是哪里不对了。 于是下意识的 nvm ls available 一下看看: $ nvm ls available Showing the 15 latest available releases. STABLE | UNSTABLE --------------------------- v8.9.1 | v8.7.0 v8.9.0 | v7.9.0 v8.8.1 | v7.7.4 v8.8.0 | v7.7.3 v7.10.1 | v7.7.2 v7.10.0 | v7.7.1 v7.8.0 | v7.7.0 v6.12.0 | v6.

为 GitLab 代码库配置 Specific Runner

为 GitLab 代码库配置 Specific Runner

最近要为团队内一个项目搭建持续集成。项目代码托管在公司内部的 GitLab 上,于是很自然的选择使用 GitLab 自带的 CI/CD 功能。 在 GitLab 的 CI/CD 流程中具体执行任务的节点叫做 runner。GitLab 中有两种类型的 runner: Shared Runners 由 GitLab 管理员配置的公有 runner。多个项目公用。作为开发人员无需配置,可以直接使用。 Specific Runners 开发人员为每个代码库单独配置的专属 runner。只能执行所属代码库的任务。需要开发人员手动搭建。 由于我厂的 GitLab 并没有配置任何 Shared Runner。所以只能选择在自己的台式机上手动搭建。 具体流程如下: Step 1 下载 runner 可执行文件 根据你的环境下载 x86 或者 amd64 版本。 创建 D:\GitLab-Runner 目录,将刚刚下载好的文件复制到该目录并重命名为 gitlab-runner.exe。 Step 2 以管理员身份运行 Git Bash Step 3 访问代码库的配置页获取配置信息 进入代码库主页,依次点击 Settings => CI / CD => Runners settings。 这里展开的信息中有两个字段需要我们记下来。分别是一个 URL 和一个 Token。 Step 4 注册 runner 进入 D:\GitLab-Runner 目录执行命令:

Chrome 开发者工具中的命令菜单

大家对命令菜单(Command Menu)应该都不陌生。目前主流的编辑器中都内置了对该功能的支持。在 Sublime Text 和 Visual Studio Code 中你都可以通过快捷键 Ctrl + Shift + P 呼出命令菜单(在 Mac 上是 Cmd + Shift + P)。 在呼出的菜单中输入关键字选择自己需要的命令(支持模糊搜索哦),按回车即可执行命令。极大的提高了效率。 举个例子,以下的操作是为文件设置 JavaScript 的语法高亮: 很方便吧。 如果你已经习惯了这种操作方式,那么今天要告诉你一个好消息。Chrome 开发者工具现在也支持命令菜单了!激活的方式还是 Ctrl + Shift + P。 激活后,长这个样子: 熟悉的配方,熟悉的味道。有木有! 滚动菜单,查看支持的命令,基本涵盖了我们日常开发用到的所有功能。 举几个实用的小例子吧(这些例子不同命令菜单一样可以实现,但命令菜单可以极大的提高效率)。 1. 搜索所有资源文件 激活命令菜单,输入 search,选择 Search all files,回车。在弹出的输入框中输入关键字就可以在所有页面引入的资源文件中搜索该关键字了。还支持正则表达式哦。 2. 禁用/开启页面 JavaScript 激活命令菜单,输入 js,选择 Disable JavaScript。再次选择,即可开启。 3. 隐藏 HTML 中的注释 激活命令菜单,输入 comment,选择 Hide HTML Comments。 更多快捷功能,自己去发现吧!

配置Fiddler拦截iOS/Andorid的https请求

Fiddler可以配置用来拦截https请求。但默认配置下仅支持拦截PC上的请求。在移动端上的https请求会因为证书问题而失败。如下图所示: 要解决这个问题,只需要在iOS/Android系统上安装一个安全证书即可。具体步骤如下: 访问http://www.telerik.com/fiddler/add-ons,下载并安装CertMaker for iOS and Android插件。 安装完成后重启Fiddler。 重启后浏览器访问http://ipv4.fiddler:8888,如果看到如下内容,表示安装成功。 在手机浏览器(iOS建议Safari)里打开前边提到的链接,点击页面中最后一个链接FiddlerRoot certificate。下载完后会提示如下页面: 点击安装,弹出安全认证,要求输入密码。输入后出现以下页面: 继续点击安装。安装成功提示如下: 到这里,所有的配置工作就全部做完了。现在再次访问https页面,已经可以正常打开了。

键盘鼠标共享神器 Mouse without Borders

如果你像我一样办公桌上有2台或以上的电脑(比如一个台式机,一个笔记本),那么有个问题一定在困扰着你。那就是两台电脑有各自的一套键鼠设备。来回切换使用两台电脑的时候要在两套键鼠设备之前切换,非常不方便。同时,两套设备还会占据办工作上很大的空间。 今天要分享一个神器帮你解决这个问题,那就是微软出品的Mouse without Borders。通过它,你可以利用一套键鼠设备在若干台(最多4台)电脑之前无缝切换。就好像是在两个连接在同一个电脑的两个显示器之间切换一样方便。 使用方法 下载并安装Mouse without Borders,需要连接的两台电脑上都要安装。 下载地址 在两台电脑上都启动程序。会看到如下的欢迎界面 在第一台电脑上点击NO,看到如下页面。记下这里的SECURITY CODE。 在第二台电脑上点击YES,输入之前记下的SECURITY CODE和主机名。点击LINK。 连接成功后会出现以下提示界面: 按需修改配置。配置界面如下。通常默认配置已经够用了。如果确有需要按需调整即可。 功能,特色 Mouse without Borders的主要特色有: 一套键鼠控制多台设备 各台设备间完全平等,可以使用任意一台主机的键鼠控制任意其他主机 各台主机间共享剪切板内的内容,随意复制粘贴(支持复制文件) 支持在主机间拖拽复制文件 可以截取任意一台设备上屏幕的内容(Ctrl+Shift+S进入截屏模式,鼠标拖拽选择截屏区域,在本地打开画图工具,Ctrl+V即可看到截图内容) 缺点 我的能想到的唯一缺点就是不支持跨平台,仅支持Windows操作系统。毕竟是Microsoft出品。。。 类似产品 Synergy 功能与Mouse without Borders类似。主要区别在于,与Mouse without Borders相比: 优点: 跨平台 支持Windows Linux Mac 缺点: 有服务器,客户端的概念。只能使用服务器的键鼠控制其他主机 不支持在主机间复制粘贴文件或拖拽复制文件(官方宣传支持该功能,但始终复制不成功) 不支持截取其它主机的屏幕 综上,如果你需要跨平台,那么没得选,只能Synergy。否则果断选择Mouse without Borders。