Соглашение об именовании

Posted: Сентябрь 24, 2010 in .NET

Первую запись в блоге посвящая такой важной теме как соглашение об именовании в .NET, значение которого невозможно переоценить. Это и улучшение читабельности кода, и облегчение понимания кода, и соответствие стандартам.

Тип Соглашение Пример
Namespaces Pascal Case, никаких подчеркиваний. Используйте имя компании в самом начале. Если нет компании, то используйте ваше имя или инициалы. Все акронимы длиннее двух символов должны быть Pascal Case (Xml а не XML). AppliedIS.TimeCard.BusinessRules
IrritatedVowel.Controllers
PeteBrown.DotNetTraining.InheritanceDemo PeteBrown.DotNetTraining.Xml
Assemblies Называйте сборку как самый рутовый namespace. В любом случае более важно будет то обстоятельство, что по названию сборки вы сможете определить для чего она предназначается. AppliedIS.TimeCard.BusinessRules.dll
IrritatedVowel.Controllers.dll
Classes and Structs Pascal Case, никаких подчеркиваний. Не надо начинать имя класса с «C» или «cls». Класс не должен называться также как и namespace, в котором он находится. Все акронимы длиннее двух символов должны быть Pascal Case. Старайтесь избегать аббревиатур и всегда используйте имя существительное. Widget
InstanceManager
XmlDocument
MainForm
Collection Classes Следуйте соглашению об именовании классов, но в конце добавляйте Collection. WidgetCollection
Delegate Classes Следуйте соглашению об именовании классов, но в конце добавляйте Delegate. WidgetCallbackDelegate
Exception Classes Следуйте соглашению об именовании классов, но в конце добавляйте Exception. InvalidTransactionException
Attribute Classes Следуйте соглашению об именовании классов, но в конце добавляйте Attribute. WebServiceAttribute
Interfaces Следуйте соглашению об именовании классов, но начинайте с заглавной буквы «I». IWidget
Enumerations Следуйте соглашению об именовании классов. В конце не добавляйте «Enum». Если перечисление представляет собой набор побитовых флагов (bitwise flags), пишите во множественном числе. SearchOptions (bitwise flags)
AcceptRejectRule (normal enum)
Functions and Subs Pascal Case, никаких подчеркиваний, кроме обработчиков событий. Старайтесь избегать аббревиатур, мы не платим за количество букв ;). public void DoSomething(...)
Properties and Public * Member Variables Pascal Case, никаких подчеркиваний, кроме обработчиков событий. Старайтесь избегать аббревиатур. Свойства должны отличаться не только регистром букв, чтобы быть доступными из языков нечувствительных к регистру таких как Visual Basic .NET. public int RecordId
Parameters Camel Case, никаких подчеркиваний. Параметры должны отличаться не только регистром букв, чтобы быть доступными из языков нечувствительных к регистру таких как Visual Basic .NET. ref int recordId
Procedure-Level Variables Camel Case, никаких подчеркиваний. int recordId;
Class-Level Private and Protected Variables Camel Case, начинаются с подчеркивания. private int _recordId;
Controls on Forms Pascal Case. Либо вначале используйте префиксы типа «txt», «lbl», либо в конце пишите название контрола типа «TextBox», «Label»… Для большей наглядности при группировке в intellisense можете всегда использовать префикс  «ux» (от «User eXperience»), а в конце пишите название конрола. uxUserIdField
uxHeaderLabel
LastNameField
LastNameLabel
Constants Правила такие же как для public/private member variables или procedure variables. Если объявлены как публичные, то PascalCase. Если приватные, то camelCase. Не используйте SCREAMING_CAPS SomeClass.SomePublicConstant
localConstant
_privateClassScopedConstant
Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s