-
-
Notifications
You must be signed in to change notification settings - Fork 341
[Draft] Code style
Yevgeniy Zakharov edited this page May 17, 2019
·
22 revisions
This is a very beginning of defining a code style of the lib
- Use
usinginstead oftypedef-usingis more readable - Class can have
superalias in its' score only to its' superclass. Otherwise give it a different name - Curly braces after
if,forandwhilemust be put on the same line not on the next one - same code less lines - All classes/structs are named with lowercase with underscore just like std's ones - one of
sqlite_orm's goals is to look like it is a part of stdlib:storage_t,table_type,statement_binder - private variables are named with camelcase:
needQuotes,compositeKeyColumnNames - public functions are named just like classes:
begin,make_table,bind - every
#includefrom stdlib must have a list of functions/classes from it which are used in a current source file. These lists must be actual to keep includes in actual state and remove excess once they are not required:#include <string> // std::string,#include <cstddef> // std::nullptr_t,#include <algorithm> // std::find_if - don't write constructors which can be replaced with initializer list constructors - less code -> same result
- don't make member field private/protected with single lined getter/setter - make a public field instead. Once you need logic in setter or getter - then make a refactoring, move to private/protected and add getter and setter. Least of getters and setters require logic but single field logic increases code from one line to seven:
public:
int myField = 0;vs
private:
int myField = 0;
public:
int getMyField() const {
return this->myField;
}
void setMyField(int value) {
this->myField = value;
}- always use
thiswhile accessing member fields and member functions cause it makes reading complicated template code easier - use
std::string &strinstead ofstd::string& strcause&and*are not a part of a type:
int* a, b;doesn't declare two pointers but one pointer and one int.
Same for return type of functions
12) Place curly braces always after if, for, while and do operators even if body contains one line - someone may add line after you and forget to place curly braces and you'll get incorrect behavior which probably compiles well