2013/06/24

我痛恨駝峰式命名原則

這篇其實是個抱怨文,藉以抒發我個人的不滿~

甚麼叫駝峰式命名原則?
舉個例子來說,假設你有一個用來新增產品用的函數,你可能命名成
AddProduct

如果他是某個物件的方法,那你會這樣命名
addProduct

這個就是駝峰式命名法,目前主流的程式語言大都是推薦這樣的命名方式。

如上面的例子,駝峰式命名原則還分成兩種,如果首個單詞第一個字母也大寫的話,也被稱作帕斯卡命名原則。

相對於駝峰式命名原則,我個人比較喜歡底線命名原則,以上述例子來說,如果用底線命名原則來命名就會變成
add_product

我不否認駝峰式命名原則看起來比較美觀,而且名稱長度較少,但它的優點也僅只於此。
尤其是在一些 Script 語言中,你可以利用一個內容是函數名稱的字串去調用該函數來達到效果時,碰到駝峰式命名原則,你會發現沒有完美的解法~

我寫過剖析駝峰式命名原則字串的函數,從結論上講,不論是上面兩種駝峰式命名原則,還是名稱裡面包含連續大寫縮寫的名稱,我寫的剖析函數都能正確切開個個單詞 (前提是你沒亂命名)。

但能切開不代表能組合回去,原因是因為你沒辦法猜測組合回去的名稱被用在什麼情況下。

相對於駝峰式命名,底線式命名的原則還蠻死板的,他要求全部小寫,分隔單詞全都用底線。
這種命名方式很古老,但任何場合都能用,從各種程式語言到資料庫、表、欄位等等,全都一體適用。

分解組合這種命名方式也很簡單,甚至不用你自行來寫函數來剖析,大多數的程式語言都內建了處理分解組合這種字串的函數。