Ahmad Awais 发布的文章

使用 Emoji-Log 为你的提交添加上下文。

我是一名全职的开源开发人员,我喜欢称自己为“开源者”。我从事开源软件工作已经超过十年,并构建了数以百计的开源软件应用程序。

同时我也是“ 避免重复工作 Don’t Repeat Yourself ”(DRY)哲学的忠实粉丝,并且我相信编写更好的 Git 提交消息是 DRY 的一个重要组成部分。它们具有足够的上下文关联,可以作为你开源软件的变更日志。我编写的众多工作流之一是 Emoji-Log,它是一个简单易用的开源 Git 提交日志标准。它通过使用表情符号来创建更好的 Git 提交消息,从而改善了开发人员的体验(DX)。

我使用 Emoji-Log 构建了 VSCode Tips & Tricks 仓库 和我的 ? 紫色 VSCode 主题仓库,以及一个看起来很漂亮的自动变更日志

Emoji-Log 的哲学

我喜欢(很多)表情符号,我很喜欢它们。编程、代码、极客/书呆子、开源……所有这一切本质上都很枯燥,有时甚至很无聊。表情符号帮助我添加颜色和情感。想要将感受添加到这个 2D 的、平板的、基于文本的代码世界并没有错。

相比于数百个表情符号,我学会的更好办法是让类别较小和普遍性。以下是指导使用 Emoji-Log 编写提交信息的原则:

  • 必要的

    • Git 提交信息是必要的。
    • 像下订单一样编写提交信息。

      • 例如,使用 ✅ Add 而不是 ❌ Added
      • 例如,使用 ✅ Create 而不是 ❌ Creating
  • 规则

    • 少数类别易于记忆。
    • 不多也不少

      • 例如 ? NEW? IMPROVE? FIX? DOC? RELEASE✅ TEST
  • 行为

    • 让 Git 的提交基于你所采取的操作
    • 使用像 VSCode 这样的编辑器来提交带有提交信息的正确文件。

编写提交信息

仅使用以下 Git 提交信息。简单而小巧的占地面积是 Emoji-Log 的核心。

  • ? NEW: 必要的信息

    • 当你添加一些全新的东西时使用。

      • 例如 ? NEW: 添加 Git 忽略的文件
  • ? IMPROVE: 必要的信息

    • 用于改进/增强代码段,如重构等。

      • 例如 ? IMPROVE: 远程 IP API 函数
  • ? FIX: 必要的信息

    • 修复 bug 时使用,不用解释了吧?

      • 例如 ? FIX: Case converter
  • ? DOC: 必要的信息

    • 添加文档时使用,比如 README.md 甚至是内联文档。

      • 例如 ? DOC: API 接口教程
  • ? RELEASE: 必要的信息

    • 发布新版本时使用。例如, ? RELEASE: Version 2.0.0
  • ✅ TEST: 必要的信息

    • 发布新版本时使用。

      • 例如 ✅ TEST: 模拟用户登录/注销

就这些了,不多不少。

Emoji-Log 函数

为了快速构建原型,我写了以下函数,你可以将它们添加到 .bashrc 或者 .zshrc 文件中以快速使用 Emoji-Log。

#.# Better Git Logs.

### Using EMOJI-LOG (https://github.com/ahmadawais/Emoji-Log).

# Git Commit, Add all and Push — in one step.

function gcap() {
    git add . && git commit -m "$*" && git push
}

# NEW.
function gnew() {
    gcap "? NEW: $@"
}

# IMPROVE.
function gimp() {
    gcap "? IMPROVE: $@"
}

# FIX.
function gfix() {
    gcap "? FIX: $@"
}

# RELEASE.
function grlz() {
    gcap "? RELEASE: $@"
}

# DOC.
function gdoc() {
    gcap "? DOC: $@"
}

# TEST.
function gtst() {
    gcap "✅ TEST: $@"
}

要为 fish shell 安装这些函数,运行以下命令:

function gcap; git add .; and git commit -m "$argv"; and git push; end;
function gnew; gcap "? NEW: $argv"; end
function gimp; gcap "? IMPROVE: $argv"; end;
function gfix; gcap "? FIX: $argv"; end;
function grlz; gcap "? RELEASE: $argv"; end;
function gdoc; gcap "? DOC: $argv"; end;
function gtst; gcap "✅ TEST: $argv"; end;
funcsave gcap
funcsave gnew
funcsave gimp
funcsave gfix
funcsave grlz
funcsave gdoc
funcsave gtst

如果你愿意,可以将这些别名直接粘贴到 ~/.gitconfig 文件:

# Git Commit, Add all and Push — in one step.
cap = "!f() { git add .; git commit -m \"$@\"; git push; }; f"

# NEW.
new = "!f() { git cap \"? NEW: $@\"; }; f"
# IMPROVE.
imp = "!f() { git cap \"? IMPROVE: $@\"; }; f"
# FIX.
fix = "!f() { git cap \"? FIX: $@\"; }; f"
# RELEASE.
rlz = "!f() { git cap \"? RELEASE: $@\"; }; f"
# DOC.
doc = "!f() { git cap \"? DOC: $@\"; }; f"
# TEST.
tst = "!f() { git cap \"✅ TEST: $@\"; }; f"

Emoji-Log 例子

这里列出了一些使用 Emoji-Log 的仓库:

你呢?如果你的仓库使用 Emoji-Log,请将这个 Emoji-Log 徽章放到你的 README 中,并给我发送一个拉取请求,以让我可以将你的仓库列在这里。


via: https://opensource.com/article/19/2/emoji-log-git-commit-messages

作者:Ahmad Awais 选题:lujun9972 译者:MjSeven 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

WordPress 和 ReactJS 分道扬镳了,WordPress 的共同创始人 Matt Mullenweg 在其博客中宣布了这一消息。

关于 WordPress 之后将采用何种 JavaScript 框架,Matt 并未宣布,目前几个选择:

  1. VueJS
  2. Preact
  3. 其它框架(AngularEmberPolymerAurelia 等等)

其中, VueJS 和 Preact 的呼声最高。关于它们的优劣势分析如下:

VueJS

  • 优势:易于学习
  • 优势:与 Laravel 一贯协作良好
  • 优势:比 Preact 更流行,支持的社区更多
  • 优势:贡献者比 Preact 更多
  • 劣势依赖于关键人物
  • 状态:Github 上有 133 个核心贡献者,67152 个星标,做了 209 次发布
  • 资金支持:截止至本文写作, 在社区的支持下,VueJS 在 OpenCollective 得到了每年 $9,895 的捐助,作者尤雨溪在 [Patreon](https://www.patreon.com/evanyou) 得到了每月 $8,815 的捐助。

我确信 WordPress 使用 VueJS 能够更好。VueJS 有大量的拥护者,而且初学者易于上手。如果采用 VueJS,这对于 WordPress 是极好的。我自己也在几个项目中使用 VueJS,我喜欢它。

此外,这个框架也可以用在 WordPress 之外的项目(比如 Vue 与 Laravel 的集成),这可以让开发者在 WordPress 项目和非 WordPress 项目中发挥其经验。 有很多开发者都同时参与 Laravel 和 WordPress 项目,所以如果使用同一个框架,有助于同时推动 Laravel、 VueJS 和 WordPress 的发展。

PreactJS

  • 优势:易于过渡
  • 优势:与 VueJS 大致相同的资金支持,不断推进的社区
  • 优势:基于 React 的子集库仍然被 Preact 和 compat 支持
  • 劣势:过渡也许导致代码混乱和困扰(针对初学者)
  • 劣势:依赖于关键人物
  • 状态:在 GitHub 上有 100 个核心贡献者, 14319 个星标,做了 114 次发布
  • 资金支持:截止至本文写作,在社区的支持下, Preact 在 OpenCollective 得到了 $16,087 的捐助

PreactJS 有其优势,但我找不到合适的人咨询(我仅在两个项目中稍微使用过它)。不过看起来从 React 过渡到 Preact 非常容易。这也许会促使开发者选择 Preact,但是我认为这不是选择它的理由。这只会让开发者在采用这个新的 JavaScript 框架生态、node 模块、Webpack 时发生混淆,Preact 又不是 React 的别名!这会让代码味道难闻。

本文作者在几个平台上做了投票,欢迎参与你的意见:

那么你的意见呢?

(题图:maxprog.net.pl)