一、命名规范
1、目录/文件
规范:使用小写字母、数字、下划线,多个单词间用下划线分隔。
原因:Windows对目录和文件是大小写不区分的,而Linux是大小写区分的。为了达到平台统一,这里规定都使用小写字母。
示例:
目录:app_cxx/proc_ui/src/firewall
文件:firewall_mgr.h、main.cpp、nfsv2.cpp
2、函数/接口
规范:使用小驼峰命名法。
原因:大部分著名的开源项目以及大厂对外提供的API都是这样的命名规范。
示例:
int test()
{
return 0;
}
int getLocalPort()
{
return 4335;
}
3、命名空间
规范:使用小写字母、数字、下划线,多个单词间用下划线分隔 (尽量只使用一个单词),
示例:
namespace logger
{
}
4、结构体/类
规范:使用大驼峰命名法,不包含下划线
示例:
struct SendData
{
};
class LoggerManager
{
};
5、变量
规范:使用小驼峰命名法。
(1)局部变量
示例:
void test()
{
int reqNum = 0;
}
(2)全局变量
补充:需要加前缀g_
示例:
int g_reqNum= 0;
(3)静态变量
补充:需要加前缀s_
示例:
void test()
{
static int s_reqNum = 0;
}
补充:当它同时也是全变量时使用全局变量的命名方式
示例:
int g_reqNum = 0;
(4)类成员变量
补充:需要加前缀m_
示例:
class ServerInfo
{
private:
int m_reqNum
}
(5)类静态变量
补充:需要加前缀s_
示例:
class ServerInfo
{
private:
static int s_reqNum;
}
(6)常量
补充:需要大写字母
示例:
const int MAX_NUM = 1024;
5、宏定义
规范:需要大写字母
示例:
#define CACHE_PATH "/data/cache"
6、枚举
规范:枚举名使用大驼峰命名法,枚举名建议带上class类型,枚举值需要小写字母
原因:避免和宏定义冲突
示例:
enum class ResultType
{
ok,
open_fail,
unknown
};
二、排版规范
1、缩进
程序块要采用缩进风格编写,缩进的空格数为 4 个
2、 独立说明加空行
相对独立的程序块之间、变量说明