added a short coding style guide
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@ -1,2 +1,3 @@
|
|||||||
*.~undo-tree~
|
*.~undo-tree~
|
||||||
*.dSYM~
|
*.dSYM~
|
||||||
|
*#*
|
||||||
|
@ -1 +0,0 @@
|
|||||||
# These are more like guidelines
|
|
@ -1 +0,0 @@
|
|||||||
peisongxiao@PeisongXiao.11477
|
|
39
docs/coding-style.md
Normal file
39
docs/coding-style.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
# These are more like guidelines
|
||||||
|
|
||||||
|
## Naming schemes
|
||||||
|
- Use reasonable names, especially for class members
|
||||||
|
- Use shortened names for local variables
|
||||||
|
- Use comments to explain if a name doesn't obviously imply what the
|
||||||
|
variable does
|
||||||
|
|
||||||
|
## Constants and types
|
||||||
|
- All constant variables should be in all CAPS
|
||||||
|
- When not needing values to distinguish flags (i.e. the flag is only
|
||||||
|
there to denote a type, its value can be anything), use **enum**.
|
||||||
|
- If a template object is used more than once, it is a good idea to
|
||||||
|
wrap it in a class/struct or use a **typedef**
|
||||||
|
- If the purpose of a class is solely to store data, use a struct.
|
||||||
|
|
||||||
|
## Object design
|
||||||
|
- If an object isn't meant to be inherited, declare it **final**
|
||||||
|
- If a member function has to be implemented individually, declare it
|
||||||
|
as a pure virtual function.
|
||||||
|
|
||||||
|
## Global variables
|
||||||
|
- Avoid using global variables at all costs
|
||||||
|
- Can improve **rng** to be referenced instead of externally exported
|
||||||
|
|
||||||
|
## Functions and local variables
|
||||||
|
- A function should be at most 40 lines unless it's logically simple
|
||||||
|
(e.g. has a long switch statement that calls other functions).
|
||||||
|
*rationale: functions should be short and sweet and let the people
|
||||||
|
reading them know what it does.*
|
||||||
|
- Never have more than 4 local variables in the scope of a function at
|
||||||
|
the same time.
|
||||||
|
*rationale: a normal human's brain can only keep track of a handful
|
||||||
|
of things at once*
|
||||||
|
|
||||||
|
## STL library
|
||||||
|
- Prefer using the STL library over raw data types unless it's a very
|
||||||
|
simple data type
|
||||||
|
- Use unique_ptr<> for heap-allocated objects
|
Reference in New Issue
Block a user