一直很认同关于自由和约束辩证关系的理论。觉得在约束下的自由更舒服更加容易把握,一个人所能驾驭的自由跟他的能力是成正相关的,不然的话自由就会变成迷茫。
其实从读书开始我就觉得命名是个很纠结的事情,再加上我有比较严重的强迫症,看不顺眼的命名我会一直惦记着,很难集中精神去进行下一步的工作,所以其实名字起的好的话工作效率很提高得很明显,很有必要规范一下,减少纠结的时间。
一:关于目录名
这里借鉴一下常见开源项目的做法:小写单词组合,用“-”分隔开
注:如果使用visual studio的话,解决方案和项目名称
二:文件、类、变量、常量、函数、宏
遵从google C++ 命名规范:点击打开链接
大体摘录如下
2.1 文件
文件名要全部小写。 可以包含下划线(_) 或连字符 (-)。 按项目约定来。 如果并没有项目约定, (_)更好。
2.2 类型
类型名称的每个单词首字母均大写,,不包含下划线: MyExcitingClass, MyExcitingEnum
2.3 变量
变量名一律小写, 单词之间用下划线连接. 类的成员变量以下划线结尾, 但结构体的就不用,如:a_local_variable, a_struct_data_member, a_class_data_member_.
全局变量用g_做前缀
2.4 常量
除去开头的 k 之外每个单词开头字母均大写。const int kDaysInAWeek = 7;
2.5 函数
常规函数使用大小写混合 MyExcitingFunction(),MyExcitingMethod()
取值和设值函数则要求与变量名匹配 my_exciting_member_variable(),set_my_exciting_member_variable()
2.6 命名空间
名字空间用小写字母命名, 并基于项目名称和目录结构: google_awesome_project.
2.7 枚举
枚举的命名应当和 常量 kEnumName
2.8 宏
通常 不应该 使用宏. 如果不得不用, 其命名全部大写, 使用下划线:
#define ROUND(x) ...
#define PI_ROUNDED 3.0