Coding Guidelines
Some high-level coding guidelines that we hope ensure proper code quality for the whole project.
- Make use of a code formatter, we provide a configuration for
clang-format. Pay attention to its feedback messages. - Use lowerCamelCase to name functions and variables
- Make use of meaningful function & variable names
- Use the prefix
isorhasfor functions returning a Boolean, e.g.,isEmpty(). - Use the prefix
mfor member variables, e.g.,mIntervalsfor the member collecting the intervals of a class. - Use the prefix
_for private member functions, e.g.,_setInternalState(). - Avoid putting types into variable names, e.g., do not use
variableVectorbut maybe insteadvariables. - Use
getandsetas prefixes for getters and setters.
- Use the prefix
- Collect complicated conditional statements in Boolean variables whose naming communicates the intention of the statement.
- Try to avoid lengthy functions. Some hints:
- Split where it seems logical
- Try to keep the indentation level low (e.g., less than three)
- Pay attention to blocks in conditional statements - can they be extracted into a function?
- Avoid interface changes. If you need to
- Keep the old interface, mark it deprecated with information on when this will be removed.
- Add the new interface in parallel to the old one.
- Document your code, ideally, provide a doxygen-style documentation for each function, class, and class member. Also consider documenting blocks of increased complexity.