06月18, 2016

【译】Emoji 可以如何改进你的代码——严肃地讨论

原文:http://www.zcfy.cc/article/584

谁不喜欢 emoji?如同大量的 emoji 用户在聊天和 email 中使用它,我开始尝试看我是否能将它用到每天的软件开发中去。

虽然这咋一听起来像是在开玩笑,但我发现在开发工作的某些场景中, emoji 将会是真正有价值的。为什么呢?

我们,作为开发者,通常查看大量的文本——不管无论是代码、产品日志、代码提交信息、文档又或者别的什么——而 emoji 天然地从一大堆文本里面凸现出来。将 emoji 从一个列表中挑选出来要比在其中找一段随机字符串要容易得多,在大段文本中 emoji 很容易被捕捉到,这能够让真实的生产效率得到提高。此外,即使没有真正提高生产效率,emoji 也很好玩。以下是我最近的一些玩法:

注释中的 emjoi

想象你需要加一个警告到你的代码里,类似下面这样:

/**
 * WARNING:
 * Changing this code breaks the build
 */

我经常在我的代码中加入类似这样的警告信息,但是多年的开发经验告诉我,几乎没有人真正去读这些警告信息——包括我自己。怎样才能让这个注释更显眼更容易被第一眼发现呢?一个 emoji。

/**
 * 🚨 WARNING:
 * Changing this code breaks the build
 */

emoji 很容易让人一瞥就发现,因此如果你在你的团队中采用一个标准,把某些公共的东西用特定的 emoji 来标记,我们就能看到它的价值了。

/**
 * ✅ TODOS:
 * • Unit Test
 * • Performance profiling
 */

即使你没有实际使用 emoji 在注释上,它们也仍然是一种令人愉快的与同事交流的方式。

// Why does this cause the app to crash? 🤔
// O(n²) complexity 🤓

由于 emoji 只出现在注释中,这么做几乎没有任何风险。

代码提交信息中的 emoji

代码提交信息通常都很无聊。但是用了 emoji 你可以把它们变得不那么无聊。我最近尝试了“每次提交一个 emoji 协议”,到目前为止我还没有失望。

尽管这是个有点逗逼的例子,我依然要强调我的观点,emoji 在这里改善了可读性。如果你在一个巨大的提交信息列表中查找某个提交——这种情况在大项目中常有——这时候如果在提交信息中有 emoji 会让你的查找容易得要死。GitHub 的 Atom 编辑器 甚至有一个 emoji 指导规范在他们的 git 提交信息样式指南中。

代码中的 emoji

我还没有实际将 emoji 用于无注释的生产环境代码中,但这并不意味着我看不到那样做是有价值的。大多数语言支持在字符串中使用 emoji,这样你可能会发现使用 emoji 能让你嘈杂的生产环境日志的关键信息更方便被摘出来。

log("🔑 Authentication successful for user ABC123");
log("☠️ App crashed with exception code DEF456");
log("✉️ Email successfully sent to user GHI789");

Emoji 也可以作为有趣的讲解例子,它可以给相当无趣的计算机科学教学带来一点乐趣。

Map/filter/reduce in a tweet:

map([🌽, 🐮, 🐔], cook) => [🍿, 🍔, 🍳]

filter([🍿, 🍔, 🍳], isVegetarian) => [🍿, 🍳]

reduce([🍿, 🍳], eat) => 💩

— Steven Luscher (@steveluscher) June 10, 2016

键入 emoji

为了实际使用 emoji,你需要能够快速将它们打出来。我个人使用 OS X 的 Control + Command + Space Bar 系统键盘快捷键,它能够弹出一个菜单让你将 emoji 插入到大多数 OS X 应用中去。下面是菜单看起来的样子。快来基于我常用的 emoji 表情评价我吧。

注意:Windows 10 在它的触屏键盘内置了 emoji 支持,我曾经使用过,它用起来也非常直观。

Emoji 与编辑器

Emoji 是很好玩,然而除非工具支持它们,不然你也玩不成。幸运的是,大部分编辑器和开发工具正慢慢赶上 emoji 革命。我用 Sublime Text 写的这篇博客,它支持了 emoji,尽管 emoji 字符在 Sublime Text 里面看起来有点扭曲。

幸运的是,我使用的另一个编辑器,微软的最新的 Visual Studio Code,将 emoji 处理得好的令人惊叹。

我选择的命令行终端,iTerm2 也能很好地处理 emoji。下图是我的终端在一次新的提交代码的时候看到的包含 emoji 的提交信息:

虽然说不是每一个软件都会完美支持 emoji。我们许多人要处理历史遗留的软件,这些软件处理基础字符都有问题——更别说 emoji 了。但是我们可以改变这个状况。如果你在使用一个不支持 emoji 的工具,请提交 ticket 或者 bug 给对应的开发者。让我们一起来推动 emoji 革命 🎉

英文原文:https://www.tjvantoll.com/2016/06/10/emoji-and-coding/

本文链接:https://www.h5jun.com/post/how-emoji-can-improve-your-code-seriously.html

-- EOF --

Comments