Соглашения об именах: Руководство по использованию глаголов / существительных и грамматики английского языка - PullRequest
17 голосов
/ 05 января 2009

Может ли кто-нибудь указать мне на сайт или дать мне некоторую мудрость о том, как вы выбираете имена для интерфейсов, классов и, возможно, даже методов и свойств, связанных с тем, что делает этот объект или метод?

Это специально для разработки Microsoft, так что "doGet" в Java-стиле и т. Д. На самом деле не используется, однако некоторые общие правила, которые допускают межъязыковые барьеры (я бы подумал), существуют.

Пример может помочь: у меня есть 4 варианта имен интерфейса:

IGroupedItem
IGroupableItem
IDataEntity
IGroupedEntity

Все они содержат прилагательное и существительное или просто существительное. Глядя на .NET Framework, кажется, что для этого должен быть какой-то набор правил для согласованности? Помимо очевидных глаголов для методов.

Редактировать: Хотя пример является интерфейсом, я не ограничиваю это только интерфейсами. Общее правило: классы это существительные, методы глаголы, свойства существительные. Я полагаю, что я имею в виду выбор синонима. Кидает "сущность" везде неправильно

Ответы [ 7 ]

19 голосов
/ 05 января 2009

Посмотрите в статьях MSDN рекомендации по именованию. Короче говоря:

  • Использовать существительные для имен классов и имен свойств (это очевидно)
  • Для имен интерфейсов начните с I и используйте существительные и / или прилагательные для описания поведения
  • Используйте глаголы для имен методов, чтобы описать действие

Для вашего примера - IGroupableItem.

8 голосов
/ 05 января 2009

Интерфейсы - это то, на что способен класс. Не то, что это , это , а то, что он может сделать .

IGroupableItem

Другие имена описывают, что является или является слишком расплывчатым, чтобы быть полезным.

В частности, «IDataEntity» в значительной степени бессмысленен. В конце концов, все является объектом данных.

4 голосов
/ 05 января 2009

В MSDN есть статья только о Правила именования интерфейсов , которая может вам помочь. Если вам нужны соглашения об именах, отличные от интерфейсов, наряду со многими другими рекомендациями по именованию и проектированию, вы можете найти их и в MSDN.

1 голос
/ 05 января 2009

Наряду с Рекомендациями MSDN, есть документ C # Standards Code от IDesign Джувала Лоуи, который весьма полезен (не знаю, насколько это сильно отличается от MSDN)

C # Стандарты кодирования

1 голос
/ 05 января 2009

Есть хорошая статья Создание неправильного кода выглядит неправильно Джоэл Спольски. В нем рассказывается о не очень популярном, но очень удобном соглашении об именах.

1 голос
/ 05 января 2009

Это тот же материал, что и ответ Споди, но MSDN Рекомендации по разработке для разработчиков библиотек классов в основном превосходны, охватывают наименование и многое, многое другое.

0 голосов
/ 05 января 2009

Попробуйте это ....

Главный сайт: http://www.ssw.com.au/ssw/standards/Default.aspx
Правила кодов: http://www.ssw.com.au/ssw/Standards/Rules/RulestoBetterCode.aspx

...