Соглашения о наименованиях
- Не используйте венгерскую или другую префиксную нотацию за исключением случаев, оговоренных далее.
- Имена локальных переменных и аргументов методов должны записываться в нотации «верблюд»:
string customerName;
private int DoSomething(int firstArgument, float secondArgument);
- Имена закрытых полей класса должны следовать нотации «верблюд» с подчерком перед первым символом:
private string _customerName;
- Имена открытых полей класса должны следовать нотации «Паскаль»:
public intCustomerID;
- Имена свойств и методов класса должны следовать нотации «Паскаль»:
public bool ValidateAmount();
public bool FileExists
{
get;
}
- Имена классов, структур и нумераторов должны следовать нотации «Паскаль»:
public class CustomerAccount
{
};
private enum WorkMode
{
Add,
Update;
}
- Имена методов должны следовать шаблону «глагол» + «существительное» - например, “UpdateAccount”;
- Используйте единственное, а не множественное число в именах перечислителей. Иными словами, “WorkMode” - это правильное имя, а “WorkModes” - нет;
- Используйте значимые имена даже для закрытых методов, свойств, типов и т.д. Избегайте использовать короткие имена, такие как “a”, “b”, “n” за исключением общепринятых имен для переменных цикла “i” и“j”.
Общие принципы разработки
Культура кодирования
- Дублирование кода в программе строго запрещается.
- Не применяйте функциональную декомпозицию. Для повторного использования кода применяйте средства ООП, например, наследование;
- Обязательна замена числовых и строковых литералов символическими константами. Исключение можно сделать для самоочевидных констант, таких как 0 и 1. Давайте символическим константам значимые имена;
- Рекомендуется объединять связанные между собой константы целых типов в перечислители, а не целых типов – в абстрактные классы с открытыми статическими константными членами;
- Разделяйте общеупотребительные константы, перечислители и вспомогательные классы посредством System Frameworks проектов;
- Максимально следуйте практике ООД/ООП. Максимально используйте шаблоны проектирования, но делайте это в правильном контексте, как это описано в секции “Applicability” данного шаблона;
- Избегайте длинных и сложных методов, разбивайте их на несколько коротких. При модификации кода максимально используйте рефакторинг;
- Всегда обращайте внимание на предупреждения компилятора. Добивайтесь, чтобы их не было.
Соглашения о комментариях
- Код должен легко читаться и без комментариев. Выражайте свои мысли при помощи алгоритмического языка, а не английского или украинского;
- Текст комментария отделяйте от слэшей одним пробелом. Первая буква предложения должна быть прописной, в конце предложения должна стоять точка;
// This is a sample comment. This is yet another comment sentence.
- Комментарии должны подчиняться общим правилам сворачивания строк.
- Комментарии к методам, свойствам, классам, интерфейсам и другим конструкциям языка должны иметь XML-формат для возможной генерации программных документов в дальнейшем;
- Не используйте комментарии в стиле C: /* … */
- Комментарий не должен перефразировать то, что написано в коде. Старайтесь давать содержательные пояснения. Например, комментарий “Increment i by one” к коду “i++;” это плохая практика, а комментарий “Update the number of customer accounts processed” – хорошая.
Специфика Windows Forms
- Следуйте Microsoft User Interface Guidelines, если к вам не предъявляют других требований.
- Если два управляющих элемента служат одной цели (например, поле ввода для имени пользователя и метка перед ним), разрешается использовать тип элемента в окончании имени. Для предыдущего примера это могут быть имена “customerNameText” и “customerNameLabel” соответственно.
- Старайтесь убирать всю бизнес-логику из форм и управляющих элементов. В обработчики событий элементов помещайте только вызовы методов;
- Используйте нотацию «верблюд» для наименования экземпляров управляющих элементов на формах и пользовательских управляющих элементах, например, “optionsHeading”;
- Используйте нотацию «Паскаль» для наименования классов форм и управляющих элементов, например, “ ProductList ”;
- Стремитесь к повторному использованию UI и исходного кода. Делите ваш интерфейс на элементы; смело наследуйте формы и управляющие элементы.
Источник информации
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/cpgenref/html/cpconnetframeworkdesignguidelines.asp