ITK/Code Review Check List

From KitwarePublic
Jump to navigationJump to search

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