我曾经见过很多人用汉语拼音做变量名,包括用在数据库中,比如数据库名、表名、字段名,包括用在 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 ,都有代码输入自动提示功能,并不会需要多敲多少字母。