Какое соглашение о присвоении имен для свойства 'ID': ID или Id? - PullRequest
23 голосов
/ 05 ноября 2008

Довольно простой вопрос: когда у меня есть постоянный объект, он обычно имеет свойство с именем ID (для абстрактных классов).

Итак ... это идентификатор соглашения об именах или идентификатор?

например.

public int ID { get; set; }

или

public int Id { get; set; }

ура:)

PS. Это для .NET, кстати. FXCop Conformat будет бонусом.

Ответы [ 9 ]

28 голосов
/ 05 ноября 2008

Я обычно иду с Идентификатором . Если я действительно хочу, чтобы он был коротким (например, как часть более длинного идентификатора), я использую Id, если это не параметр или закрытый член.

.NET Framework Naming Guidelines произнесите это:

Аббревиатура - это слово, которое образовано из букв слов в термине или фразе. Например, HTML является аббревиатурой от языка гипертекстовой разметки. Вы должны включать аббревиатуры в идентификаторы только тогда, когда они широко известны и понятны. Сокращения отличаются от сокращений тем, что сокращение сокращает одно слово. Например, ID - это сокращение от идентификатора. В общем, имена библиотек не должны использовать сокращения.

В идентификаторах можно использовать два сокращения: ID и OK. В идентификаторах Pascal они должны отображаться как Id и Ok. Если они используются в качестве первого слова в идентификаторе в верблюжьей клетке, они должны отображаться как id и ok, соответственно.

8 голосов
/ 05 ноября 2008

В руководствах написано "Id".

К счастью, ребята .Net были настолько любезны, что дали нам «правила именования», а не «законы именования»;), так что, в основном, если вы твердо уверены, что нарушение правила руководящих принципов приносит большую ценность, чем следование ему, тогда все означает разбить его, никто не возьмет на себя ответственность за это, если они поймут ваши причины (как будто это обеспечивает большую читабельность и подчеркивает значение имени)

В моем магазине мы используем «ID», даже если в руководящих принципах написано «Id», но никто не чувствует себя виноватым по этому поводу.

8 голосов
/ 05 ноября 2008

Что бы вы ни хотели, просто будьте последовательны. Идентификатор - это не слово, это сокращение от идентичности. Как писать сокращения - это то, о чем люди спорят в течение долгого времени. Например. это

getResourceURL

или

getResourceUrl

на самом деле оба могут быть найдены в использовании в разных рамках. Еще один популярный сокр. с аналогичной проблемой является UTF8.

Просто важно быть последовательным, потому что в противном случае люди всегда должны искать правильную прописную букву для каждого метода, если каждый метод обрабатывает его по-своему.

У меня есть своя конвенция для этого. Если сокр. находится в конце имени, оно пишется с заглавной буквы, если оно где-то еще, оно следует правилам верблюжьей нотации Э.Г.

getResourceURL
urlOfResource
compareUrlToString

Почему? Мне нравится сокр. быть заглавными. Большинство людей ожидают, что URL или UTF будут написаны заглавными буквами. Однако, если в середине имени, это уничтожает преимущество верблюжьей нотации. Преимущество верблюжьей нотации заключается в том, что вы видите, где начинается новое слово с заглавной буквы. Итак, сравните:

compareURLToString
compareUrlToString

В первом случае я не вижу сразу, чтобы URL был одним словом, а To - следующим. Буква T может быть частью URL (URLT) и представлять собой другое сокращение, поэтому я буду использовать вторую форму. Однако, если он в конце, он не будет играть никакой роли, другого слова не следует, поэтому я предпочитаю заглавную форму. Я придерживаюсь этого соглашения во всем своем коде.

4 голосов
/ 05 ноября 2008

Как отмечали другие, Id является правильным в соответствии с соглашениями .NET, но почему-то это не так, так как многие люди используют ID (и все еще живут).

Я не знаю, каким будет содержимое вашего поля (числа, строки, направляющие), но если вы хотите пропустить проблему, вы можете просто использовать другое соглашение .NET для идентификаторов объектов: Имя

2 голосов
/ 23 апреля 2009

«ID» - это одно из сокращений, жестко закодированных в правилах именования FxCop, которые всегда считаются написанными неправильно, даже если они являются частями других слов. Единственный способ переопределить это - добавить «ID» в Сокращения как ():

<Dictionary>
<Acronyms>
   <CasingExceptions>
        <Acronym>ID</Acronym>
  </CasingExceptions>
</Acronyms>
</Dictionary>

Работает с FxCop 1.36. Постскриптум В целом, я думаю, что «Id» - лучшая альтернатива, но иногда невозможно изменить имя, если оно генерируется на основе файлов XML (или веб-сервисов), которые мы не контролируем

2 голосов
/ 05 ноября 2008

Мы используем ID для внутреннего использования, потому что Id кажется мне похожим на психологию, но FxCop жалуется, так как ID - это не аббревиатура, а аббревиатура (для Identity / Identifier). Согласно правилу FxCop только аббревиатуры длиной два символа могут быть заглавными. Все остальное должно быть в надлежащем случае.

Мы помещаем атрибут SuppressMessage в свойство ID, и все довольны.

1 голос
/ 05 ноября 2008

Я предпочитаю ID, также в сочетании с другими словами (например, CustomerID), но, строго говоря, это противоречит обычным правилам именования.

0 голосов
/ 15 июля 2009

http://en.wiktionary.org/wiki/id#Abbreviation

Зачем бороться с этим?

0 голосов
/ 05 ноября 2008

Мы видим здесь такие слова, как «Id» или другие аббревиатуры, и «Id» является простым, потому что в банковском бизнесе мы получаем множество странных буквенных комбинаций. Таким образом, мы воспринимаем это как слово, только с первой заглавной буквой, и именно так мы оказались в нашем документе о внутренних правилах кодирования.

Но суть в следующем: выберите, какое соглашение будет более удобным для команды разработчиков и других людей, которые смотрят на исходный код и придерживаются его.

...