代码规范
缩进:
是用Tab键好,还是2、4、8个空格?
结论:4个空格,在VS2005和其他的一些编辑工具中都可以定义Tab键扩展成为几个空格键。
不用 Tab键的理由是Tab键在不同的情况下会显示不同的长度。4个空格的距离从可读性来说正好。
行宽
行宽必须限制 但是以前有些文档规定的80字符行宽太小了(以前的计算机/打字机显示行宽为80字符),现在时代不同了,可为100字符。
括号
在复杂的条件表达式中,用括号清楚地表示逻辑优先级。
断行与空白的{ }行
每个“{”和“}”都独占一行
//不同的语句(Statement)放在一行中,会使程序调试(DeBug)非常不方便,如果要一步一步观察condition(condition有可能是包含函数调用的复杂表达式)中各个变量的变化情况,单步执行就很难了
if (condition) DoSomething(); else DoSomethingElse();//××××
//由于没有明确的“{”和“}”来判断程序的结构,在有多层控制嵌套的时候,就不容易看清结构和对应关系
if (condition) DoSomething(); else DoSomethingElse();//××××
if ( condition) { DoSomething(); } else { DoSomethingElse(); }//√√√√ <(^-^)>
分行
不要把多行语句放在一行上。
a = 1; b = 2; // bogus if (fFoo) Bar(); // bogus
更严格地说,不要把不同的变量定义在一行上。
Foo foo1, foo2; // bogus
命名
匈牙利命名法
基础要求
1、标识符的名字以一个或者多个小写字母开头,用这些字母来指定数据类型。
2、在标识符内,前缀以后就是一个或者多个第一个字母大写的单词,这些单词清楚地指出了源代码内那个对象的用途。
比如,m_szStudentName表示一个学生名字的类成员变量,数据类型是字符串型。
下划线问题
下划线用来分隔变量名字中的作用域标注和变量的语义,如:一个类型的成员变量通常用m_来表示。
大小写问题
由多个单词组成的变量名,如果全部都是小写,很不易读,一个简单的解决方案就是用大小写区分它们。
Pascal——所有单词的第一个字母都大写;Camel——第一个单词全部小写,随后单词随Pascal格式,这种方式也叫lowerCamel。
一个通用的做法是:所有的类型/类/函数名都用Pascal形式,所有的变量都用Camel形式。
类/类型/变量:名词或组合名词,如Member、ProductInfo等。
函数则用动词或动宾组合词来表示,如get/set; RenderPage()。
注释
复杂的注释应该放在函数头,很多函数头的注释都是解释参数的类型等的,如果程序正文已经能够说明参数的类型in/out等,就不要重复
注释也要随着程序的修改而不断更新,一个误导的(Misleading)注释往往比没有注释更糟糕。
另外,注释(包括所有源代码)应只用ASCII字符,不要用中文或其他特殊字符,它们会极大地影响程序的可移植性。
在现代编程环境中,程序编辑器可以设置各种好看的字体,可以使用不同的显示风格来表示程序的不同部分。
浙公网安备 33010602011771号