知乎上有個提問:為什麼學程式設計都建議不要用拼音命名?
↓↓↓
不知道身為程式設計師的你,曾經有沒有用拼音在程式程式碼中命名變數名、方法名、註釋等的經歷?
作為國內的程式設計師,可能有小夥伴會埋怨,程式語言和開發工具都已經全英文了,用拼音命名怎麼了又,不好嗎。
現如今漢語普及率這麼高的今天,全世界都在學中國話,用拼音命名不是挺好。
在這裡,我們不妨先思考一下,我們用拼音命名,在實際軟體開發過程中,會有什麼問題,缺陷在哪裡?
帶著疑問,我開啟了chatgpt,想知道一下它是怎麼看待這個問題?(面向gpt程式設計,程式設計師做事的正確姿勢 )
以下是gpt給出的答覆:
不得不感嘆,gpt回答的確實比較專業,考慮問題也比較全面。
接下來,我們一一來拆解一下:
如果一個專案,全程都只有你一個人編寫與維護,這個問題的影響面可能相對還小一點(不要告訴我,時間一長,你自己都看不懂當時寫的語意了,這就尷尬了 )。
但,事實往往是,我們需要在一個大專案中,去編寫部分業務模組程式碼。
有時候,我們為了趕時間或純粹不想動腦筋,用拼音快速命名了一下臨時變數或方法名。
比如下面這個例子:
var jianceniandu = ...
var nongtianchanliang = ...
var dikuaibianma = ...
var feiliaohanshuilv = ...
這種程式碼換做誰看得懂,特別是在沒有註釋的前提下。
大家看下如下兩段程式碼的對比,一個是用英文命名的方法名,一個是用拼音命名的方法名,大家感受一下,你更願意看到的是哪個?
第一個方法,都不用我寫註釋,你一看就秒懂,這個方法表達的意圖,做的事情。
但第二個,如果拼音簡短一點的可能還好,但凡還要長的,你未必一時能看懂其含義,有時甚至要深入方法內部,檢視完所有方法程式碼後,你才能反應過來,前人寫的這個方法名錶達的含義。(效率是真的低)
public void sendEmail(Message message){
//傳送郵件相關程式碼
}
vs
public void faSongYouJian(Message message){
//傳送郵件相關程式碼
}
糾其原因,目前我們開發使用的IDE都是國外的軟體,全文索引這塊,對英文支援良好,但拼音支援不好,所以,有時候會影響搜尋結果的。
如果我們的軟體,打算開源,甚至未來有計劃捐給一些國外基金會,比如Apache等,那麼你寫的程式碼,是面向全球化的,但問題來了,如果你寫了拼音這種變數,老外是鐵定看不懂的,這會顯得這款軟體很不國際化。
關於這一點,先貼幾個案例,大家可以感受一下,先憋著別笑:
相關的案例不少,我就不窮舉了。你用拼音命名我就先不說了,你還「簡稱」代替,你這不要人命嘛。
本文完~
原創:陶朱公Boy(微信公眾號ID:taozhugongboy),歡迎分享,轉載請保留出處。