C++的style guide 来自cs106b
Stanford class style guide C++
Google style guide C++
Google 所有语言 style guide
Class中的内容
布局,缩进和空格
-
缩进:始终一致使用空格/缩进!正确的空格/缩进可以阐明程序的结构,并使您更容易遵循代码并查找错误。
- 在每个打开大括号上增加缩进量{,在每个关闭大括号上减少量}。
- 每个缩进级别选择2-4个空格的增量。始终如一。
- 不要在同一行上放置多个语句。
-
长行:当任何行超过100个字符时,请将其分成两行。缩进溢出文本以使其与上面的文本对齐。
-
空行:使用空行分隔函数和函数中的逻辑语句组。
-
空格:在运算符及其操作数之间添加空格。添加括号以显示分组,其中读者可能不清楚其优先级。
名字
选择有意义的标识符。这减轻了读者的认知负担,并自我记录了每个变量和功能的目的。
-
变量名的名词: 对于变量,问题是“What is it?” 使用名词(name,scores)加上修饰符来澄清(courseName,maxScore)。不要在变量名称中重复变量类型(不是titleString,只需要title)。避免像一个字母名称a或p(用于循环计数器例外i,j或者,坐标x和y)。永远不要给变量命名l,因为它很容易与数字混淆。
-
函数名称的动词:对于函数,问题是“What does it do?” 其中执行操作的功能,最好由动词确定的(findSmallest,stripPunctuation,drawTriangle)。返回主要用于根据属性被命名为他们的返回值函数(isPrime,getAge)。
-
使用命名常量:避免在整个代码中散布数字。而是声明一个命名const值,并在需要该值的地方使用。这有助于提高可读性,并在需要时提供一个位置来编辑值。
-
大写:函数和变量的名称使用驼峰大小写(countPixels),类/类型的名称要大写(GridLocation),常量的名称要大写(MAX_WIDTH)。约定允许读者快速确定给定标识符属于哪个类别。
可变范围
- 范围:在尽可能小的范围内声明变量。例如,如果变量仅在循环内部使用,则在循环主体的作用域内声明,而不是在函数顶部或文件顶部声明它。
- 不要在内部作用域中重用相同的名称:在内部作用域中声明与外部作用域中的变量具有相同名称的变量,将导致内部使用名称来“shadow”外部定义。这不仅令人困惑,而且经常导致难以解决的bug。
- 无全局变量:不要在全局范围内声明变量。当有信息要在函数调用之间共享时,它应该通过参数和返回值流入和流出,而不是到达并访问全局状态。