Loading... ## 1、命名规范 ### 1.1 变量命名 尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词。 - 全局/局部变量 - string table_name //好 - 用下划线 - string tableNmae //差 - 混合大小写 - 类成员变量 - string table_name_ //好 - 后加下划线 - static Pool<TableInfo>* pool_; //好 - 常量:命名时以`k`开头,大小写混写 - const int kDayAWeek = 7; - 结构体变量:结构体数据成员都可以和普通变量一样,不用想类那样后接下划线 - int num_entries; ### 1.2 类命名 类型名称的每个单词首字母均大写, 不包含下划线 - class UrlTable - class UrlTableTester ### 1.3 函数命名 常规函数使用大小写混合, 取值和设值函数则要求与变量名匹配 - MyExcitingFunction() - MyExcitingMethod() - set_my_exciting_member_variable() ## 2、头文件 ### 2.1 #define保护 所有头文件都应该使用 #define 来防止头文件被多重包含, 命名格式当是: `<PROJECT>_<PATH>_<FILE>_H_` ```cpp #ifndef FOO_BAR_BAZ_H_ #define FOO_BAR_BAZ_H_ ... #endif // FOO_BAR_BAZ_H_ ``` ### 2.2 #include的路径和顺序 - C系统文件 - C++系统文件 - 其他库的.h文件 - 本项目内的.h文件 ## 3、注释 ### 3.1 文件注释 在每一个文件开头加入版权公告. 每个文件都应该包含许可证引用. 为项目选择合适的许可证版本.(比如, Apache 2.0, BSD, LGPL, GPL) ### 3.2 类注释 ### 3.3 函数注释 基本上每个函数声明处前都应当加上注释, 描述函数的功能和用途. 只有在函数的功能简单而明显时才能省略这些注释 函数声明处注释的内容: - 函数功能 - 函数参数 - 函数返回值 - 函数创建信息:时间、作者 ```cpp // @brief: 获取容器迭代器 // @param: void // @ret: 返回容器迭代器 // @birth: created by Dablelv on 20180802 Iterator* getIterator() const; ``` ### 3.4 TODO注释 对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释. ```cpp // TODO(kl@gmail.com): Use a "*" here for concatenation operator. // TODO(Zeke) change this to use relations. // TODO(bug 12345): remove the "Last visitors" feature ``` ### 3.5 弃用注释 通过弃用注释(DEPRECATED comments)以标记某接口点已弃用. Last modification:February 16th, 2021 at 09:03 pm © 允许规范转载