Web 技术研究所

我一直坚信着,Web 将会成为未来应用程序的主流

命名中的分词问题

  我们在做变量或其它东西的命名时经常会想办法分割单词,分词确实有益于阅读,但也会带来一系列问题。因为分词是人做的,掺入了主管因素。有些词可以被认为是词组,也可能被认为是合成词,这就会造成命名的不统一。PHP 的 API 设计就是典型的受害者。

「最好的编程语言」

  翻开 PHP 的函数手册,查询 str 开头的函数就会看到两个系列:

  刚学 PHP 的时候觉得这很坑爹,不过现在已经被它折磨习惯了,「最好的编程语言」绝对不是浪得虚名。再找找还会发现一堆不以 str 开头的字符串处理函数,而且也是各种混乱。
  造成这些问题就是命名不规范惹的祸,而分词问题就是命名规范的一个大问题。

分词的坑

  拿到一个词,大家的分法可能都不同。比如 wavelength 这个词很可能有人认为它是一个词组。这时候如果以下划线来分词就可能被写成 wave_length,于是就造就了「最好的编程语言」。
  其实不仅是英文,有些中文词也存在无法区分是词组还是短语的情况。比如「物质的量」这个渣翻译的词就有这样的问题。也许很多人会认为这是一个短语,但实际上只是一个合成词而已。不过中文本来就是没有分词概念的,所以我们可能只会觉得有点别扭,不会踩到什么坑。

不分词的坑

  虽然中文不会有坑(或者说我们本来就是坑里长大的),但英文要是不分词就会有很多坑。比如下面这个屌爆了:


  还有可能遇上意思完全相反的情况,比如「a synchronous request」和「asynchronous request」,这坑要是踩到了就要呵呵了。

摊手

  英文无论分词还是不分词都有坑。那么我们就要纠结一下哪个坑深哪个坑浅。其实这东西比较难说,也没有定论。到其它社区上发个讨论帖估计也没法得出结论。要是不怕变成「最好的编程语言」就去分,要是不怕「penis broken」就不要分。

网名:
3.80.32.*
电子邮箱:
仅用于接收通知
提交 悄悄的告诉你,Ctrl+Enter 可以提交哦
神奇海螺
[查看全部主题]
各类Web技术问题讨论区
发起新主题
本模块采用即时聊天邮件通知的模式
让钛合金F5成为历史吧!
次碳酸钴的技术博客,文章原创,转载请保留原文链接 ^_^