ITK/Code Review Check List: Difference between revisions

From KitwarePublic
< ITK
Jump to navigationJump to search
Line 28: Line 28:
* Respect Coding Style as specified in the document Insight/Documentation/Style.pdf
* Respect Coding Style as specified in the document Insight/Documentation/Style.pdf
* Must pass the test of KWStyle
* Must pass the test of KWStyle
* [Style] In the .txx files of template classes, the first 5 lines in the declaration of methods should follow the pattern:
** 1) template
** 2) return type
** 3) class name
** 4) ::method name
** 5) the opening bracket
For example:
  template <  template_arguments >
  return_type
  classname< template_arguments >
  ::methodsName( method_arguments )
  {
    // indentation of two spaces
    // for the first line of code
    int k = 0;
  }
Note that in many cases line (2) uses a trait from the templated class and therefore becomes:
  typename classname< template_arguments >::trait

Revision as of 19:39, 17 January 2007

Code Review Check List

The following is the list of coding style issues that must be verified on every class and file during a code review.

  • Filename must match class name
  • All files must have the Copyright Header at the top.
  • #define for class name in the .h and .txx files. __classname_h and __classname_txx
  • Brief class doxygen description
  • namespace itk
  • Complete class doxygen description
  • Constructor/Destructor private/public
  • No acronyms in class name or method names
  • no unnecessary headers #included
  • Justify every public method
  • All member variables must be private
  • Use Set Get Macros
  • If deriving from itkObject
    • Use New macro
    • declare SmartPointer<T> as Pointer
    • declare SmartPointer<const T> as ConstPointer
    • declare Self
    • declare Superclass
    • use TypeMacro
    • Have PrintSelf() method and print all the member variables
  • 100% code coverage (see dashboard)
  • All 'non-const' method must justify why they are not 'const'
  • Any information that is printed or displayed has to be legible to human eyes
  • Respect Coding Style as specified in the document Insight/Documentation/Style.pdf
  • Must pass the test of KWStyle
  • [Style] In the .txx files of template classes, the first 5 lines in the declaration of methods should follow the pattern:
    • 1) template
    • 2) return type
    • 3) class name
    • 4) ::method name
    • 5) the opening bracket

For example:

 template <  template_arguments >
 return_type
 classname< template_arguments >
 ::methodsName( method_arguments )
 {
   // indentation of two spaces
   // for the first line of code
   int k = 0;
 }

Note that in many cases line (2) uses a trait from the templated class and therefore becomes:

 typename classname< template_arguments >::trait