前言

首先命名要可读,这是所有规则的公理!!!!!尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词。
本篇作为学习笔记,约束自己

文件命名

文件名全部都要小写并且包含下划线(_)

可接受的文件命名示例:

  • my_useful_class.cc
  • http_server_logs.h

C++ 文件要以 .cc 结尾, 头文件以 .h 结尾. 专门插入文本的文件则以 .inc 结尾

通常应尽量让文件名更加明确. http_server_logs.h 就比 logs.h 要好

类型命名

类型名称的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.

变量命名
  • 普通变量命名

    单词全小写并且用下划线(_)隔开,和文件命名类似,必须要让命名可读,并且明确。

    string table_name;
    string user_name_read;
  • 类数据成员

    再普通的变量名前面加上c_作为开头

    class TableInfo {
    ...
    private:
    string c_table_name;
    static Pool<TableInfo>* c_pool;
    };
  • 常量命名

    声明为 constexprconst 的变量, 或在程序运行期间其值始终保持不变的, 命名时以 “k” 开头, 大小写混合. 例如:

    const int kDaysInAWeek = 7;
  • 全局变量命名

    全局变量则以 g_ 开头,比如 :

    string g_system_time;
  • 结构体成员命名

    string s_name;
    int s_num_entries;
函数命名

类型名称的每个单词首字母均大写, 不包含下划线,例如:MyExcitingFunction()

宏命名

应当全部大写并用下划线(_)进行分割

#define MY_MACRO_THAT_SCARES_SMALL_CHILDREN 123
#define PI_ROUNDED 3.0
枚举命名

枚举命名和类以及函数命名一样

enum UrlTableErrors {
kOK = 0,
kErrorOutOfMemory,
kErrorMalformedInput,
};
结构体命名

结构体命名同枚举和类以及函数命名方式相同

struct UrlTableProperties {
string s_name;
int s_num_entries;
static Pool<UrlTableProperties>* s_pool;
};