-
Explain your thinking in why a change or addition is needed.
- Is it a requested change or feature?
- If not, open a feature request to get feedback before making a pull request.
-
Split up multiple unrelated changes in multiple pull requests.
-
If it's a fix for a unreported bug, make a bug report and link the pull request.
-
Purely cosmetic changes won't be accepted without a very good explanation of its value.
-
Indent type: Tabs
-
Tab size: 4
-
Alternative operators
and
,or
andnot
. -
Opening curly braces
{
at the end of the same line as the statement/condition.
-
Don't force a programming style. Use object oriented, functional, data oriented, etc., where it's suitable.
-
Use RAII.
-
Make use of the standard algorithms library, (re)watch C++ Seasoning and 105 STL Algorithms for inspiration.
-
Make use of the included robin_hood unordered map & set
-
Do not add includes if the same functionality can be achieved using the already included libraries.
-
Use descriptive names for variables.
-
Use comments if not very obvious what your code is doing.
-
Add comments as labels for what's currently happening in bigger sections of code for better readability.
-
Avoid writing to disk.
-
If using the logger functions, be sensible, only call it if something of importance has changed.
-
Benchmark your code and look for alternatives if they cause a noticeable negative impact.
For questions open a new discussion thread or send a mail to jakob@qvantnet.com
For proposing changes to this document create a new issue.