代码风格

笔记起草背景:看过很多人开发的代码,身边的人最近吐槽别人的代码风格。良好的风格对于自己开发过程中并无多大帮助,很大程度上是愉悦别人,注重团队合作。

开发规范

1.变量名称命名规范:ab_c 全小写,单词之间以``分隔。
2.函数命名规范:oneTwoThree 首单词小写,其它单词首字母大写。如遇到缩写,把该缩写看成单词处理,即首字母大写其余小写。
3.尽可能使用描述性的命名, 别心疼空间, 毕竟相比之下让代码易于新读者理解更重要. 不要用只有项目开发者能理解的缩写, 也不要通过砍掉几个字母来缩写单词.
代码比对

int price_count_reader;    // 无缩写
int num_errors;            // "num" 是一个常见的写法
int num_dns_connections;   // 人人都知道 "DNS" 是什么
int n;                     // 毫无意义.
int nerr;                  // 含糊不清的缩写.
int n_comp_conns;          // 含糊不清的缩写.
int wgc_connections;       // 只有贵团队知道是什么意思.
int pc_reader;             // "pc" 有太多可能的解释了.
int cstmr_id;              // 删减了若干字母.

4.文件名要全部小写, 可以包含下划线或连字符 (-), 依照项目的约定. 如果没有约定, 那么 “_” 更好.

可接受的文件命名示例:
my_useful_class.cc
my-useful-class.cc
myusefulclass.cc
myusefulclass_test.cc // _unittest 和 _regtest 已弃用.

5.类型名称(类, 结构体, 类型定义 (typedef), 枚举, 类型模板参数)的每个单词首字母均大写, 不包含下划线: MyExcitingClass, MyExcitingEnum.
6.static 或 const 的变量, 命名时以 “k” 开头, 大小写混合. 例如:

const int kDaysInAWeek = 7;

7.感觉 Google 的命名约定很高明, 比如写了简单的类 QueryResult, 接着又可以直接定义一个变量 query_ result, 区分度很好; 再次, 类内变量以下划线结尾, 那么就可以直接传入同名的形参, 比如 TextQuery::TextQuery(std::string word) : word_ (word) {} , 其中 word_ 自然是类内私有成员.
8.注释:对那些临时的, 短期的解决方案, 或已经够好但仍不完美的代码使用 TODO 注释.
  通过弃用注释(DEPRECATED comments)以标记某接口点已弃用.

注:详见谷歌开发指南

posted @ 2020-06-04 15:44  风影我爱罗  阅读(175)  评论(0编辑  收藏  举报