感觉使用底层语言,例如C/C++的程序员,非常喜欢用各种各样的缩写。我觉得有以下几方面的原因:
- 受到Linux命令的影响(Linux命令大多是缩写,例如cp, mv)
- 受到Linux内核源代码的影响。
- 受到C标准库的命名风格的影响(例如strcpy)
- C没有命名空间,所以通常在函数名、全局变量名、结构体名前加上模块的名称,为了不把名称搞得太长,所以就会缩短。
- 个人心理作用,觉得用缩写让代码看起来特别精简。
- 使用一些没有补全功能的编辑器,然后不想打太长的名称。
反观Java程序员,就偏爱使用完整的英文单词,至少在Java API中,这点体现得非常明显。大部分的标准API接口,无论是类还是函数,都会使用完整的单词,力求表义清晰。另外Java通常使用Eclipse等IDE来开发,所以名字再长,通常不用全部打完,都会有自动补全,所以名称长些也无所谓。
个人还是偏向于完整的单词,理由是:
- 代码20%的时间在写,80%的时间在读,可读性比敲代码时的时间节省要重要得多,况且敲代码的时间,占整个工程的时间,其实并不多。
- 缩写,不是每个人都可以理解。对一部分而言很熟悉很明显的缩写,对另一部分人则不是。例如cli是什么?是command line interface的缩写,还是client的缩写?
- 缩写,不同的人,缩出来的结果不一样。甚至在同一个工程下,都可能出现不同的缩写,严重影响代码可读性和心情。
- 例如context,有人缩写成ctxt,有人缩写成cxt。
- 例如client,有人缩写成clnt,有人缩写成cli。
- 例如create,有人缩写成creat,有人缩写成crt。
- (以上的例子全是我在实际代码中遇到的,而且是同一个项目)