Общие соглашения об именовании

Примечание.

Это содержимое перепечатывается разрешением Pearson Education, Inc. из руководства по проектированию платформы: соглашения, идиомы и шаблоны для повторно используемых библиотек .NET, 2-го выпуска. Этот выпуск был опубликован в 2008 году, и книга с тех пор была полностью пересмотрена в третьем выпуске. Некоторые сведения на этой странице могут быть устаревшими.

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

Выбор слов

✔️ Выбирайте для идентификаторов легко читаемые имена.

Например, свойство с именем HorizontalAlignment легче читается на английском, чем AlignmentHorizontal.

✔️ Удобочитаемость важнее краткости.

Имя свойства CanScrollHorizontally лучше, чем ScrollableX (неочевидная ссылка на ось X).

❌ НЕ используйте знаки подчеркивания, дефисы и другие символы, не являющиеся буквенно-цифровыми.

❌ НЕ используйте венгерскую нотацию.

❌ ИЗБЕГАЙТЕ использования идентификаторов, совпадающих с ключевыми словами широко используемых языков программирования.

В соответствии с правилом 4 спецификации CLS все соответствующие языки должны предоставлять механизм, который разрешает доступ к именованным элементам, использующим ключевое слово этого языка в качестве идентификатора. Например, в C# в качестве escape-символа используется @. Однако рекомендуется избегать часто встречающихся ключевых слов, поскольку гораздо сложнее использовать метод с escape-последовательностью, чем без нее.

Использование сокращений и акронимов

❌ НЕ используйте сокращения в именах идентификаторов.

Например, используйте GetWindow, а не GetWin.

❌ НЕ используйте акронимы, которые не являются широко принятыми, и в целом используется акронимы только при необходимости.

Предотвращение использования имен, связанных с конкретным языком

✔️ Для имен типов используйте семантически содержательные имена, а не ключевые слова, относящиеся к конкретному языку.

Например, имя GetLength лучшее, чем GetInt.

✔️ Используйте универсальное имя типа CLR, а не относящееся к конкретному языку имя, в редких случаях, когда у идентификатора нет семантического значения, кроме его типа.

Например, у метода, преобразующего в Int64, должно быть имя ToInt64, а не ToLong (поскольку Int64 является именем CLR для относящегося к C# псевдонима long). В таблице ниже представлено несколько базовых типов данных, использующих имена типов CLR (а также соответствующие имена типов для C#, Visual Basic и C++).

C# Visual Basic C++ CLR
sbyte SByte char SByte
byte Byte unsigned char Byte
short Short short Int16
ushort UInt16 unsigned short UInt16
int Целое число int Int32
uint UInt32 unsigned int UInt32
long Long __int64 Int64
ulong UInt64 unsigned __int64 UInt64
float Один float Один
double Двойной double Двойной
bool Boolean bool Boolean
char Char wchar_t Char
string String String String
object Объект Объект Объект

✔️ Используйте общее имя, например value или item, вместо повторения имени типа в редких случаях, когда у идентификатора нет семантического значения, а тип параметра не важен.

Именование новых версий существующих API

✔️ При создании новых версий существующего API используйте имя, аналогичное старому API.

Это помогает подчеркнуть связь между API.

✔️ Чтобы указать новую версию существующего API, желательно добавлять суффикс, а не префикс.

Это поможет найти нужную информацию при просмотре документации или использовании IntelliSense. Старая версия API будет находиться близко к новым версиям API, так как большинство браузеров и IntelliSense отображают идентификаторы в алфавитном порядке.

✔️ Используйте новый, но понятный идентификатор вместо добавления суффикса или префикса.

✔️ Используйте числовой суффикс, чтобы указать новую версию существующего API, особенно если существующее имя API является единственным понятным именем (например, если оно является отраслевым стандартом) и если добавление любого понятного суффикса (или изменение имени) не представляется возможным.

❌ НЕ используйте суффикс "Ex" (или аналогичный), чтобы отличать идентификатор его от более ранней версии того же API.

✔️ Используйте суффикс "64" при внедрении версий API, которые работают с 64-разрядными целыми числами (длинное целое число), а не с 32-разрядными целыми числами. Этот подход следует применять только в том случае, если существует 32-разрядный API. Не используйте его для новых API, у которых есть только 64-разрядная версия.

Фрагменты: © Корпорация Майкрософт (Microsoft Corporation), 2005, 2009. Все права защищены.

Перепечатано с разрешения Pearson Education, Inc. из книги Инфраструктура программных проектов. Соглашения, идиомы и шаблоны для многократно используемых библиотек .NET (2-е издание), авторы: Кржиштоф Цвалина (Krzysztof Cwalina) и Брэд Абрамс (Brad Abrams). Книга опубликована 22 октября 2008 г. издательством Addison-Wesley Professional в рамках серии, посвященной разработке для Microsoft Windows.

См. также