Coding Conventions and Guidelines

1. Avoid having lines more than 100 symbols.

2. Prefix class fields with "m", static members with "g" and constants with all capital letters:
  public class TimelineBuilder
  {
        private const double                            TOP_MARGIN = 5;
        private double                                  m_pixelWidth;
        private double                                  m_pixelHeight;
        ...


3. Align variables, parameters and fields at position 57.
   public object CreateColumn(
       double                                      left, 
       double                                      top, 
       double                                      width, 
       double                                      height, 
       string                                      content
   )
   {
        FrameworkElement                           el;
        ...


4. Avoid initialization of local variables at the time of declaration with value which does not make sense. Consider the following example where return value may be left with invalid value:
   public decimal GetBalance(
       AccType                                           at
   )
   {
          decimal                                         ret = 0;

          if (at == AccType.SavingAccount)
          {
                ret = GetSavings();
          }      
          else if (at == AccType.CheckingAccount)
          {
                ret = GetChecking();
          }

          return ret; 
   }


5. Make member functions and properties work in transactional way, i.e. if member function fails object state is not altered.

6. Use Debug.Assert to validate assumptions about function parameters, or throw exception for public methods and properties.

7. Avoid having more then one try/catch/finally block inside a function.

8. Prefer single return from a function.

Z. For the rest follow .Net Framework Design Guidelines for Class Library Developers located here: http://msdn.microsoft.com/en-us/library/czefa0ke%28VS.71%29.aspx

Last edited Oct 18, 2009 at 2:19 AM by andrewsyrov, version 20

Comments

No comments yet.