编程经验点滴----避免使用汉语拼音做变量名

2012-05-03 14:59

 

我曾经见过很多人用汉语拼音做变量名,包括用在数据库中,比如数据库名、表名、字段名,包括用在 java/c#/c++/javascript 中。

 

同音词举例:

fujian, 附件/福建

shanghai, 上海/商海/伤害

biaozhi, 标志/标致/表侄/婊子

BYD, 比亚迪/不要爹

BMW, 宝马车/别摸我

hanzi, 汉字/汉子

gangcai,刚才/钢材

xinren, 信任/新人/新任

确实不适合做变量名。

 

相比较用汉语全拼做变量名的,更不可取的是,很多人用两个、三个声母字母,缩写成一个变量,这种变量更难以理解:因为这种同音词更多。

比如 GC, 就太多同音词了,

这是 ubuntu 的拼音输入法中的:刚才/歌词/钢材/干脆/高层/搞错/观测/刚从/过错/光彩/盖茨/公测/公测/棺材/共存/该村/公厕/甘草/更惨/馆藏/各村/管材/告辞/故此/国粹/干菜/国策。

这是 windows 中微软拼音中的:高层/干脆/刚才/光彩/甘草/故此/钢材/歌词/观测/公厕/共存/果菜/告辞/馆藏/滚存/干才/供词/高参/挂彩/过错/估测/棺材/国策/鬼才/国粹/孤残/骨刺/干草/干菜/过从/管材/跟从/高才/构词/沟槽/怪才/谷仓/光灿/卦辞/更次/固辞/谷草/改窜/攻错/盖菜。

可以想象,如果另一个程序员看到以 GC 拼音缩写做变量名,是难以确定这是什么意思的。

 

我建议还是坚持用英文单词做变量名,不怕长。很多编程规则中,莫名其妙地规定,变量名不能长。问题是,如果变量名可以取短的,我们自然会取短的,比如 name; 如果变量名取短了,会引起歧义,则我们不得不用长名字,比如 user_chinese_name, user_english_name。

这不是简单一个规则就能解决的:变量名要少于 n 个字符。

 

另外,变量名长了,并没有特别明显的坏处。现在的开发工具 IDE ,都有代码输入自动提示功能,并不会需要多敲多少字母。

 

 

欢迎转载,转载请注明出处: https://www.zheguisoft.com/staff_blogs/jacklondon_chen/2012, 及 https://www.cnblogs.com/jacklondon/archive/2012/05/03/2480609.html