Coding standards

From OpenSimulator

(Difference between revisions)
Jump to: navigation, search
m
m
Line 9: Line 9:
 
* We put curly brackets on separate lines and use 4 space tabs.  
 
* We put curly brackets on separate lines and use 4 space tabs.  
 
* Tab themselves should be spaces, not actual hard tabs.
 
* Tab themselves should be spaces, not actual hard tabs.
 +
* Use string instead of String when refering to System.String type.
  
 
=== Naming ===
 
=== Naming ===
Line 35: Line 36:
 
     public void ExampleMethod(int exampleAttribute)
 
     public void ExampleMethod(int exampleAttribute)
 
     {
 
     {
         String exampleVariable="test value";
+
         string exampleVariable="test value";
 
     }
 
     }
 
}
 
}
Line 52: Line 53:
 
     public void ExampleMethod(int exampleAttribute)
 
     public void ExampleMethod(int exampleAttribute)
 
     {
 
     {
         String exampleVariable="test value";
+
         string exampleVariable="test value";
 
     }
 
     }
 
}
 
}

Revision as of 13:36, 11 January 2009

Contents

Guidelines

When adding to existing code please respect the conventions already being used in the file you're editing.

We follow standard C# coding guidelines unless otherwise stated: [1]

Formatting

  • We put curly brackets on separate lines and use 4 space tabs.
  • Tab themselves should be spaces, not actual hard tabs.
  • Use string instead of String when refering to System.String type.

Naming

  • We use full words to name things.
  • Aim for assosiative naming so that the logic is clear without explicit comments.

Classes

Unless the classes are very trivial, there should be one class per file.

public class SimpleExample
{

}

Methods

Method names have all their words capitalized (as opposed to Java, which culturally uses camelCase).

public class SimpleExample
{
    public void ExampleMethod(int exampleAttribute)
    {
        string exampleVariable="test value";
    }
}

Fields

Fields should be always initialized when declared. Member fields start with m_ and continue in camelCase:

public class SimpleExample
{
    private long m_exampleMemberField=0;
    private static double m_exampleStaticMemberField=2;

    public void ExampleMethod(int exampleAttribute)
    {
        string exampleVariable="test value";
    }
}

Warnings

  • Please keep the code warning free, using #pragma only if absolutely necessary. For instance
#pragma warning disable 0612
           ASSET_TYPE_TO_EXTENSION[(sbyte)AssetType.Script]              = "_script.txt";   // Not sure if we'll ever see this
#pragma warning restore 0612

Logging

Each class should have their own logger which is declared private and is not inherited:

public class SimpleExample
{
    private static readonly ILog m_log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
}
Personal tools
General
About This Wiki