為什麼學程式設計都建議不要用拼音命名?

2023-07-28 21:00:21

前言

知乎上有個提問:為什麼學程式設計都建議不要用拼音命名?

↓↓↓

 

 

 

不知道身為程式設計師的你,曾經有沒有用拼音在程式程式碼中命名變數名、方法名、註釋等的經歷?

動圖封面

作為國內的程式設計師,可能有小夥伴會埋怨,程式語言和開發工具都已經全英文了,用拼音命名怎麼了又,不好嗎。

現如今漢語普及率這麼高的今天,全世界都在學中國話,用拼音命名不是挺好。

 

在這裡,我們不妨先思考一下,我們用拼音命名,在實際軟體開發過程中,會有什麼問題,缺陷在哪裡?

ChatGpt回覆

帶著疑問,我開啟了chatgpt,想知道一下它是怎麼看待這個問題?(面向gpt程式設計,程式設計師做事的正確姿勢 )

以下是gpt給出的答覆:

 

 

不得不感嘆,gpt回答的確實比較專業,考慮問題也比較全面。

接下來,我們一一來拆解一下:

可讀性差

如果一個專案,全程都只有你一個人編寫與維護,這個問題的影響面可能相對還小一點(不要告訴我,時間一長,你自己都看不懂當時寫的語意了,這就尷尬了 )。

但,事實往往是,我們需要在一個大專案中,去編寫部分業務模組程式碼。

有時候,我們為了趕時間或純粹不想動腦筋,用拼音快速命名了一下臨時變數或方法名。

比如下面這個例子:

var jianceniandu = ...
var nongtianchanliang = ...
var dikuaibianma = ...
var feiliaohanshuilv = ...

這種程式碼換做誰看得懂,特別是在沒有註釋的前提下。

難以表達意義

大家看下如下兩段程式碼的對比,一個是用英文命名的方法名,一個是用拼音命名的方法名,大家感受一下,你更願意看到的是哪個?

第一個方法,都不用我寫註釋,你一看就秒懂,這個方法表達的意圖,做的事情。

但第二個,如果拼音簡短一點的可能還好,但凡還要長的,你未必一時能看懂其含義,有時甚至要深入方法內部,檢視完所有方法程式碼後,你才能反應過來,前人寫的這個方法名錶達的含義。(效率是真的低)

public void sendEmail(Message message){

      //傳送郵件相關程式碼
}
                 vs
public void faSongYouJian(Message message){

      //傳送郵件相關程式碼
}

IDE搜尋困難

糾其原因,目前我們開發使用的IDE都是國外的軟體,全文索引這塊,對英文支援良好,但拼音支援不好,所以,有時候會影響搜尋結果的。

跨語言相容性差

如果我們的軟體,打算開源,甚至未來有計劃捐給一些國外基金會,比如Apache等,那麼你寫的程式碼,是面向全球化的,但問題來了,如果你寫了拼音這種變數,老外是鐵定看不懂的,這會顯得這款軟體很不國際化。

產生歧義

關於這一點,先貼幾個案例,大家可以感受一下,先憋著別笑:

 

相關的案例不少,我就不窮舉了。你用拼音命名我就先不說了,你還「簡稱」代替,你這不要人命嘛。

動圖封面

本文完~

原創:陶朱公Boy(微信公眾號ID:taozhugongboy),歡迎分享,轉載請保留出處。