add code style guidelines
parent
d25d3213fd
commit
db7be9b782
|
@ -0,0 +1,70 @@
|
||||||
|
# Formatting Guidelines
|
||||||
|
|
||||||
|
This document lays out how to format code and documents as well as
|
||||||
|
a few coding practices.
|
||||||
|
|
||||||
|
|
||||||
|
## Markdown
|
||||||
|
|
||||||
|
Don't go beyond 80 characters per line, preferably slightly less.
|
||||||
|
This improves readability on a terminal.
|
||||||
|
|
||||||
|
Leave two empty lines between sections for the same reason.
|
||||||
|
|
||||||
|
Indent by two spaces.
|
||||||
|
|
||||||
|
|
||||||
|
## C++ / C++ headers
|
||||||
|
|
||||||
|
Include the copyright notice as present in the template at the top of
|
||||||
|
each file.
|
||||||
|
|
||||||
|
Don't use excessive comments, use descriptive names instead.
|
||||||
|
There is no such thing as too long names (within reason, of course).
|
||||||
|
|
||||||
|
Don't have comments that go beyond 80 characters per line, preferably
|
||||||
|
slightly less.
|
||||||
|
|
||||||
|
Put comments on their own lines.
|
||||||
|
|
||||||
|
Indent by four spaces.
|
||||||
|
|
||||||
|
Put opening curly braces used for scoping (namespaces, functions, conditions,
|
||||||
|
loops, etc.) on the same line as the code declaring the scope and the
|
||||||
|
corresponding closing curly braces on their own line indented the same
|
||||||
|
as the code declaring the scope.
|
||||||
|
(Java-style... How do I reword this properly?)
|
||||||
|
|
||||||
|
Put a line break after `template <typename T>`.
|
||||||
|
|
||||||
|
Use camel case names where possible except for constants which should use
|
||||||
|
all uppercase letters and underscores for their names.
|
||||||
|
Variables and functions start with a lowercase letter, classes and structs
|
||||||
|
with an uppercase letter.
|
||||||
|
|
||||||
|
Avoid abbreviations unless they are well known and universally used acronyms.
|
||||||
|
|
||||||
|
Use explicitly sized data types where possible.
|
||||||
|
For example, use `int32_t` instead of `int`.
|
||||||
|
|
||||||
|
When coming up with names, refer to data types by category and size.
|
||||||
|
For example, refer to double precision floating point numbers as `float64`
|
||||||
|
instead of `double`.
|
||||||
|
|
||||||
|
|
||||||
|
## Shell Script
|
||||||
|
|
||||||
|
Use the hash bang `#!/usr/bin/env bash`.
|
||||||
|
|
||||||
|
Include the copyright notice as present in the template below the hash bang.
|
||||||
|
|
||||||
|
Indent by four spaces.
|
||||||
|
|
||||||
|
Put special commands like `then` and `do` on the same line as the control
|
||||||
|
structure they belong to. Use the same indent for special commands like
|
||||||
|
`fi` and `done` as for the control structure they belong to.
|
||||||
|
|
||||||
|
Use uppercase variable names with underscores except for loops where
|
||||||
|
lowercase variable names with underscores may be used for counters and
|
||||||
|
iterators.
|
||||||
|
|
Loading…
Reference in New Issue