何时使用中文标识符

最后更新日期:2014-05-26

  一些编程语言(如 Java 、 PHP)中可以使用中文标识符。很多人都不用这个特性(feature),但我认为,在合适的时候使用中文标识符,可以提高代码的可读性。

  接近业务、接近领域的概念,如果这些概念本来就是用文本表述的,代码中直接使用中文就是最好的。否则,还需要在代码中翻译出一个对应的英文单词来,但这个英文单词其实是冗余的。

  例:云风的这篇文章中提到了策划需要使用中文变量名。我想这是因为在这种情况下使用中文就是最自然的,翻译成英文或者用拼音写代码会非常蹩脚。

  如果是抽象、普遍的概念,就没有必要使用中文了。比如 if / then / else 等流程控制语句,某些“中文编程语言”把这些东西也搞成中文,依我看这就完全没必要了。

  另一个使用场景是单元测试名,其实这里理想状态下应该是匿名的才对,不过我主张能用代码表达的就不用注释。比如我写过这样的代码:

  当然这个也不是我发明的,我也是跟淘宝学的:http://www.infoq.com/cn/articles/interface-test(第三张图)

  hongqn 对单元测试函数命名的讨论(以及 robbin 的回复):http://www.douban.com/note/50109382/(一句中文比看不懂的英文强多了)


2014-05-26 更新:

  关于单元测试函数是否应该用中文命名的讨论已经可以终结了。使用 ScalaTest ,我已经开始这样写单元测试了:

  所以单元测试一定要是一个函数什么的根本就是语言和库的限制嘛。