我曾經見過很多人用漢語拼音做變量名,包括用在數據庫中,比如數據庫名、表名、字段名,包括用在 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 ,都有代碼輸入自動提示功能,並不會需要多敲多少字母。
--------------------
歡迎大家下載試用折桂單點登錄系統, http://zheguisoft.com