2009-04-23 196 views
22

我在我的代碼和數據庫字段名等中使用camelCase,但最後有Id的字段,它總是最終難以閱讀。例如,itemIdteacherIdunitId等。在這些情況下,我思考如何打破慣例,只是提高可讀性寫itemID, teacherID, or unitIDID,ID或ID?

你是做什麼的,什麼是處理這個問題的一般情況下,最好的做法?

回答

10

我做我的感覺。總的來說,你最好的做法是錯誤地傾向於可讀性和遵從某些抽象標準。

只要一致。

+0

CW夢想只持續幾秒鐘。 – OscarRyz 2009-04-23 01:23:48

+0

c'est la vie等等;-) – Shog9 2009-04-23 01:27:21

5

我用駝峯,也和如果名稱以ID結尾我還用它。

3

Id

這是我對主觀問題的主觀答案。

雖然我已經標記爲CW。

+2

Id的問題是我如何看起來類似於非資本t。所以unitId是相當模糊的閱讀 – 2009-04-23 01:59:00

+0

在這種字體中它是相似的。雖然使用等寬字體(我嘗試在任何地方使用我的代碼),但它沒有。 – 2009-04-23 02:20:34

+0

或小寫字母l。即使是等寬字體,也可能存在問題。 – 2009-04-23 02:24:38

0

我更喜歡使用ID和我們公司的標準也ID,並且ID。如果您發現閱讀起來更方便,我不認爲使用ID有問題。編譯器不關心:)我在我的架構Id列中使用相同的約定。

1

我認爲可讀性是最重要的,如果它要使它更加容易閱讀應該重寫你的約定。我認爲,如果你無法輕易讀懂它(如同我們程序員討厭違反約定和協議),那麼它的優勢就超過了堅持槍支/慣例的優點。

9

ID,至於標識符。微軟建議的命名約定表明這是推薦的做法,並且使用代碼分析進行編譯將支持這一點。 如果代表兩個單詞分別以I和D開始,並且您不應使用以小寫字母開頭但以參數形式開頭的名稱,則可以使用ID。

+0

ID代表「識別數字」。可以爲任何事物創建首字母縮略詞。 ;) – 2009-04-23 02:25:26

+0

同意。每個非平凡的項目都應該使用代碼分析(FxCop),它將建議「Id」而不是「ID」。 – 2009-04-23 02:38:46

6

不要緊,只要你將你整個程序一致。

這就是說,我會去「Id」。

21

下面是我做的一個樣本。

id 
userId 
getUserId 

關鍵是一致。

3

我在所有的表名中都使用了下劃線,所以user_id。即使id是獨立的,它也是全部小寫的。

43

Id是一個縮寫,而不是縮寫詞,所以我把它稱爲「Id」。用戶界面是首字母縮略詞,首字母縮略詞 - 短小的,無論如何 - 都會被大寫:「用戶界面」。

12

我其實更喜歡「ID」。但是,正如大家所說,一致性是最重要的。

史蒂夫

1

Machine SUIF,麥克·史密斯和格倫·霍洛韋嚴格執行一個大寫字母,標誌着一個新字時約定。因此,即使CPS是首字母縮寫詞,它是transformToCps而不是transformToCPS。我發現從長遠來看,他們的方法比我們在​​中所做的更好,我們通常對ID和CPS等案例都做了大寫。

2

我要在這裏投票,但我不在乎!

顯然是id。來自深層的想法!

1

FxCop/Code Analysis會將ID標記爲壞縮寫,因此如果您想避免禁用規則,您可能會因此而符合並使用Id。但是,只要你保持一致,這一點並不重要,正如其他人指出的那樣。

1

只要您在自己的程序中保持一致,就可以隨心所欲。 (如果你在一個團隊工作,你應該遵循團隊的規則或設置一些)。

沒有提到的一點是獲得一個好字體的重要性。這將創造奇蹟,你的程序的可讀性,它可能是你的約定問題部分的字體問題:

如果你不能輕易地從LD區分標識(Id and ld),你應該改變字體和字體可能尺寸也是。我個人喜歡Consolas。

1

我同意其他答案,最重要的是要保持一致。

我想補充一點,如果沒有爲您的特定代碼庫建立標準,那麼您應該遵循由您的語言或平臺設置的約定。在Java中,首字母縮寫詞和其他大寫單詞是小寫形式標識符:

id 
url 
getId() 
setUrlParameters() 

在Objective-C,這是相反的。你可能有一個小寫的「ID」或「網址」變量,但你也有類如:

NSURL 
NSURLRequest 

所以在對象 - 我會選擇的方法等名稱:

setURLParameters: 
2

這是發音爲「眼睛」,而不是「身份證,身份證,自我和超我」,所以身份證,而不是身份證。無論如何,這是我的投票。由於它的發音方式,它是一個縮寫,而不是縮寫,這一事實並不重要。它的發音就像是一個縮寫詞,所以也可以這樣鍵入。哦,駱駝案是計算史上最糟糕的主意。:)

0

「Id」不明確。它是人類心靈的「自我」/「超我」模式的一部分嗎?可能不是:你可能試圖縮寫一個單詞,如「身份證」或「身份證」或「標識符」。

通過確定您的意思,然後不會縮寫來消除歧義(和套管問題)。

1

數據庫列和對象屬性中的ID。編號參數:

this.ID == id