我在我的代碼和數據庫字段名等中使用camelCase
,但最後有Id
的字段,它總是最終難以閱讀。例如,itemId
,teacherId
,unitId
等。在這些情況下,我思考如何打破慣例,只是提高可讀性寫itemID, teacherID, or unitID
。ID,ID或ID?
你是做什麼的,什麼是處理這個問題的一般情況下,最好的做法?
我在我的代碼和數據庫字段名等中使用camelCase
,但最後有Id
的字段,它總是最終難以閱讀。例如,itemId
,teacherId
,unitId
等。在這些情況下,我思考如何打破慣例,只是提高可讀性寫itemID, teacherID, or unitID
。ID,ID或ID?
你是做什麼的,什麼是處理這個問題的一般情況下,最好的做法?
我做我的感覺。總的來說,你最好的做法是錯誤地傾向於可讀性和遵從某些抽象標準。
只要一致。
我用駝峯,也和如果名稱以ID結尾我還用它。
Id
這是我對主觀問題的主觀答案。
雖然我已經標記爲CW。
Id的問題是我如何看起來類似於非資本t。所以unitId是相當模糊的閱讀 – 2009-04-23 01:59:00
在這種字體中它是相似的。雖然使用等寬字體(我嘗試在任何地方使用我的代碼),但它沒有。 – 2009-04-23 02:20:34
或小寫字母l。即使是等寬字體,也可能存在問題。 – 2009-04-23 02:24:38
我更喜歡使用ID和我們公司的標準也ID,並且ID。如果您發現閱讀起來更方便,我不認爲使用ID有問題。編譯器不關心:)我在我的架構Id列中使用相同的約定。
我認爲可讀性是最重要的,如果它要使它更加容易閱讀應該重寫你的約定。我認爲,如果你無法輕易讀懂它(如同我們程序員討厭違反約定和協議),那麼它的優勢就超過了堅持槍支/慣例的優點。
ID,至於標識符。微軟建議的命名約定表明這是推薦的做法,並且使用代碼分析進行編譯將支持這一點。 如果代表兩個單詞分別以I和D開始,並且您不應使用以小寫字母開頭但以參數形式開頭的名稱,則可以使用ID。
ID代表「識別數字」。可以爲任何事物創建首字母縮略詞。 ;) – 2009-04-23 02:25:26
同意。每個非平凡的項目都應該使用代碼分析(FxCop),它將建議「Id」而不是「ID」。 – 2009-04-23 02:38:46
不要緊,只要你將你整個程序一致。
這就是說,我會去「Id」。
下面是我做的一個樣本。
id
userId
getUserId
關鍵是一致。
我在所有的表名中都使用了下劃線,所以user_id。即使id是獨立的,它也是全部小寫的。
不同的語言有不同的指導原則。對於.NET,您可能會讀取Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries。對於Java,您可能會閱讀Code Conventions for the Java Programming Language。
Id是一個縮寫,而不是縮寫詞,所以我把它稱爲「Id」。用戶界面是首字母縮略詞,首字母縮略詞 - 短小的,無論如何 - 都會被大寫:「用戶界面」。
我其實更喜歡「ID」。但是,正如大家所說,一致性是最重要的。
史蒂夫
在Machine SUIF,麥克·史密斯和格倫·霍洛韋嚴格執行一個大寫字母,標誌着一個新字時約定。因此,即使CPS是首字母縮寫詞,它是transformToCps
而不是transformToCPS
。我發現從長遠來看,他們的方法比我們在中所做的更好,我們通常對ID和CPS等案例都做了大寫。
我要在這裏投票,但我不在乎!
顯然是id。來自深層的想法!
FxCop/Code Analysis會將ID標記爲壞縮寫,因此如果您想避免禁用規則,您可能會因此而符合並使用Id。但是,只要你保持一致,這一點並不重要,正如其他人指出的那樣。
只要您在自己的程序中保持一致,就可以隨心所欲。 (如果你在一個團隊工作,你應該遵循團隊的規則或設置一些)。
沒有提到的一點是獲得一個好字體的重要性。這將創造奇蹟,你的程序的可讀性,它可能是你的約定問題部分的字體問題:
如果你不能輕易地從LD區分標識(Id and ld)
,你應該改變字體和字體可能尺寸也是。我個人喜歡Consolas。
我同意其他答案,最重要的是要保持一致。
我想補充一點,如果沒有爲您的特定代碼庫建立標準,那麼您應該遵循由您的語言或平臺設置的約定。在Java中,首字母縮寫詞和其他大寫單詞是小寫形式標識符:
id
url
getId()
setUrlParameters()
在Objective-C,這是相反的。你可能有一個小寫的「ID」或「網址」變量,但你也有類如:
NSURL
NSURLRequest
所以在對象 - 我會選擇的方法等名稱:
setURLParameters:
這是發音爲「眼睛」,而不是「身份證,身份證,自我和超我」,所以身份證,而不是身份證。無論如何,這是我的投票。由於它的發音方式,它是一個縮寫,而不是縮寫,這一事實並不重要。它的發音就像是一個縮寫詞,所以也可以這樣鍵入。哦,駱駝案是計算史上最糟糕的主意。:)
「Id」不明確。它是人類心靈的「自我」/「超我」模式的一部分嗎?可能不是:你可能試圖縮寫一個單詞,如「身份證」或「身份證」或「標識符」。
通過確定您的意思,然後不會縮寫來消除歧義(和套管問題)。
數據庫列和對象屬性中的ID。編號參數:
this.ID == id
CW夢想只持續幾秒鐘。 – OscarRyz 2009-04-23 01:23:48
c'est la vie等等;-) – Shog9 2009-04-23 01:27:21