Skip to content
gogobera edited this page Nov 12, 2019 · 2 revisions

Code Review

This is a template checklist for reviewing every larger pull request:

- [ ] Rebased on develop
- [ ] Formatted using `clang-format`
- [ ] Code uses the established naming convention:
  - Method names are CapitalCamelCase
  - Function names are camelCase
  - Variable and attribute names use under_score
  - Namespaces use under_score
  - std-like util functions use std-like style
- [ ] Is everything that could be const declared as const?
  - Methods
  - Variables
- [ ] Is `auto` used whenever possible?
- [ ] General structure:
  - Do the methods make sense to you?
  - Can the control flow be easily interfered?
- [ ] Documentation
  - Is the behaviour of important functions documented?
  - Is the idea of important classes documented?
  - If the algorithm is based on a specific paper: Is there a citation?
- [ ] Are there enough assertions?
  - Are indices calculations checked by assertions?
  - Is external data (e.g. read from disk) checked by assertions?
  - Are important assumptions checked by assertions?
- [ ] Tests
  - Do the tests pass?
  - In case of new functionality: Were tests added?
  - Do you see parts that could be better tested by Unit tests?