2009-04-11 209 views
1

大多數語言都給出了用下劃線(python,C等)或camel-casing(Java)分隔名稱的不同單詞的指導原則。但問題是何時將名稱視爲單獨的名稱。選項有:什麼時候加入名字,什麼時候不加入?

1)在每一次出現英文字典中出現單獨單詞的情況下,例如: (),recv_msg(),createGui(),recvMsg()等。

2)使用一些直覺來決定何時做這件事,什麼時候不做這件事,例如, recvmsg()是可以的,但是最好有create_gui()。

這是什麼直覺?

這個問題看起來微不足道。但是它提出了一個常見的問題,每當它出現時,每個實例至少需要5秒。

+0

我問第二個選項,但沒有人回答說... – Xolve 2009-04-12 15:47:00

回答

8

我總是做你的選擇1,並且據我所知,所有現代框架都可以。

想到的一件事就是標準的C庫。但是它的函數名往往是相當神祕的。

+0

這個。 「現代」是關鍵。除非你有充分的理由偏離,否則遵循兩個Java準則:(1)不要縮寫,(2)不要將單詞串在一起。 receiveMessage()甚至更好。 – 2009-06-20 17:04:11

0

對我來說,這只是我自己,我更喜歡遵循任何常規的語言,因此camelCase for Java和C++,C和SQL都是下劃線。

但無論你做什麼,在任何源文件或項目中保持一致。你的代碼的讀者會感謝你;看到一個與大多數人不一致的標識符會讓讀者暫停並詢問「與這個標識符有什麼不同?在這裏我應該注意些什麼?」

或換句話說,請遵循最小驚喜的原則。

編輯:這得到了downmodded爲什麼?

+1

可能因爲它沒有回答這個問題?問題不是關於camelCase或under_scores是否更好;這是關於在哪裏放置文字。 – 2009-04-11 19:00:24

-1

只要遵循編碼風格,這樣的時刻通常很好地描述。

例如:

ClassNamesInCamelNotaionWithFirstLetterCapitalized 
classMethod() 
classMember 
CONSTANTS_IN_UPPERCASE_WITH_UNDERSCORE 
local_variables_in_lowercase_with_underscores 
+0

我不明白爲什麼你的答案被投票,所以賠償。 – tpdi 2009-04-11 19:30:33

1

我可能偏向作爲一個Objective-C編程,那裏的東西往往是相當拼寫出來,但我從來沒有像recvMsg的方法。它將是receiveMessage(第一個參數應該是Message;如果它是一個字符串,那麼它應該是receiveString或可能receiveMessageString取決於上下文)。當你這樣拼寫出來時,我認爲這個問題往往會消失。你永遠不會說receivemessage

我縮寫的唯一時間是縮寫比完整版更清晰。 createGUI很好,因爲「GUI」(粘糊糊)是我們用英語說的常用方式。 createGraphicalUserInterface實際上比較混亂,所以應該避免。

因此,對於原來的問題,我認爲#1是最好的,但加上反對不明確的縮寫。

有史以來在Unix中最愚蠢的命名選擇之一是creat(),使一個無意義的詞保存一個按鍵。代碼被寫入一次並閱讀很多次,所以它應該偏向易於閱讀而不是書寫。

相關問題