Code Style - kukkich/Graphify GitHub Wiki
Именование
Используйте camaleCase Переменные и параметры методов именуются с маленькой буквы:
public double GetCircleArea(double radius)
{
    var area = Math.PI * radius * radius;
    return area;
}
Классы и все их члены (свойства, методы, константы, события, индексеры и т.д.) именуются с большой буквы:
public class Circle
{
    public double Radius { get; set; }
    public Circle(double radius)
    {
        ...
    }
    public double GetArea()
    {
        ...
    }
}
За исключением приватных не статических членов:
public class Circle
{
    private readonly double _radius;
    public Circle(double radius)
    {
        _radius = radius;
    }
}
Имена интерфейсов начинаются с заглавной буквы I:
public interface IShape
{
    double GetArea();
}
public class Circle : IShape
{
    ...
}
Порядок расположения членов в классе
public class Template
{
    // Constant Fields
    public const int PublicConstant = 1;
    protected const int ProtectedConstant = 2;
    private const int PrivateConstant = 3;
    // Properties
    public static int PublicStaticProperty { get; set; }
    public int PublicProperty { get; set; }
    protected static int ProtectedStaticProperty { get; set; }
    protected int ProtectedProperty { get; set; }
    private static int PrivateStaticProperty { get; set; }
    private int PrivateProperty { get; set; }
    // INDEXERS (if any)
    // public int this[int index] { get { return 0; } set { } }
    // Fields
    public static int PublicStaticField;
    public int PublicField;
    protected static int ProtectedStaticField;
    protected int ProtectedField;
    private static int PrivateStaticField;
    private static readonly int PrivateStaticReadonlyField = 9;
    private readonly int _privateReadonlyField = 8;
    private int _privateField;
    // Constructors
    public Template()
    {
        
    }
    // INTERFACE IMPLEMENTATIONS (if any)
    // e.g., public void SomeMethod() { }
    // Methods 
    public static void PublicStaticMethod() { }
    public void PublicMethod() { }
    protected static void ProtectedStaticMethod() { }
    protected void ProtectedMethod() { }
    private static void PrivateStaticMethod() { }
    private void PrivateMethod() { }
}
Не используйте сокращения (никогда!)
Помните, что ваш код кто-то будет читать и если для вас может быть очевидно, что значит sysCtx, то для того, кто это будет читать, sysCtx будет лишь каким-то набором из букв. Не ленитесь писать полное название, сэкономленные 2 секунды на написание сокращенного названия не стоят того. Особенно касается таких названий для полей/переменных, как p, x, y, t и так далее.
И того:
Неправильно
_ctx = new SysCtx();
var clr = _palette.GetColor();
View.ClrBtn.Click();
Правильно
_context = new SystemContext();
var color = _palette.GetColor();
View.ClearButton.Click();
Исключения
Однако можно допустить в некоторых случаях использование сокращений, в основном при использовании делегатов, где очевидно, чем является аргумент, или где он не важнен, в таких случаях пишется короткое название, чтобы длинное название не отвлекало от чтения основного кода. Например, в LINQ запросах аргумент делегата можно называть x или по первой букве переменной:
var oleg = users.FirstOrDefault(x => x.Name == "Oleg");
var masha = users.FirstOrDefault(u => u.Name == "Masha");
var nearestPoints = points.Where(p => DistanseBetween(p, targetPoint) <= eps)
    .ToList();
или в методах API ReactiveUI ViewModel называют vm:
this.WhenActivated(disposables =>
{
    this.Bind(ViewModel, vm => vm.ReactiveProperty, view => view.ValueBox.Text)
        .DisposeWith(disposables);
    this.BindCommand(ViewModel, vm => vm.IncrementCommand, view => view.IncrementButton)
        .DisposeWith(disposables);
});
В целом старайтесь избегать неявностей. Например, модификатор членов класса по умолчанию private, однако, если вы добавляете приватный член, указывайте это явно:
Неправильно:
public class Circle
{
    readonly int _radius;
    public Circle(int radius)
    {
        _radius = radius;
    }
}
Правильно:
public class Circle
{
    private readonly int _radius;
    public Circle(int radius)
    {
        _radius = radius;
    }
}
Используйте ранний выход из метода для лучшей читаемости
Плохой вариант:
public void BadMethod()
{
    var result = DoSomething();
    if (result.IsSucceed)
    {
        // method continue
        // ...
    }
    throw new Exception();
    // or return something
}
Правильный вариант:
public void GoodMethod()
{
    var result = DoSomething();
    if (!result.IsSucceed)
    {
        throw new Exception();
        // or return something
    }
    // method continue
    // ...
}